2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: drivers/filesystems/msfs/msfs.h
5 * PURPOSE: Mailslot filesystem
6 * PROGRAMMER: Eric Kohl
9 #ifndef __DRIVERS_FS_MS_MSFS_H
10 #define __DRIVERS_FS_MS_MSFS_H
14 #define DEFAULTAPI NTAPI
16 typedef struct _MSFS_DEVICE_EXTENSION
18 LIST_ENTRY FcbListHead
;
20 } MSFS_DEVICE_EXTENSION
, *PMSFS_DEVICE_EXTENSION
;
23 typedef struct _MSFS_FCB
25 FSRTL_COMMON_FCB_HEADER RFCB
;
27 LIST_ENTRY FcbListEntry
;
28 KSPIN_LOCK CcbListLock
;
29 LIST_ENTRY CcbListHead
;
30 struct _MSFS_CCB
*ServerCcb
;
32 LARGE_INTEGER TimeOut
;
36 KSPIN_LOCK MessageListLock
;
37 LIST_ENTRY MessageListHead
;
38 } MSFS_FCB
, *PMSFS_FCB
;
41 typedef struct _MSFS_CCB
43 LIST_ENTRY CcbListEntry
;
45 } MSFS_CCB
, *PMSFS_CCB
;
48 typedef struct _MSFS_MESSAGE
50 LIST_ENTRY MessageListEntry
;
53 } MSFS_MESSAGE
, *PMSFS_MESSAGE
;
56 #define KeLockMutex(x) KeWaitForSingleObject(x, \
62 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
64 DRIVER_DISPATCH MsfsCreate
;
65 NTSTATUS DEFAULTAPI
MsfsCreate(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
67 DRIVER_DISPATCH MsfsCreateMailslot
;
68 NTSTATUS DEFAULTAPI
MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
70 DRIVER_DISPATCH MsfsClose
;
71 NTSTATUS DEFAULTAPI
MsfsClose(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
73 DRIVER_DISPATCH MsfsQueryInformation
;
74 NTSTATUS DEFAULTAPI
MsfsQueryInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
76 DRIVER_DISPATCH MsfsSetInformation
;
77 NTSTATUS DEFAULTAPI
MsfsSetInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
79 DRIVER_DISPATCH MsfsRead
;
80 NTSTATUS DEFAULTAPI
MsfsRead(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
82 DRIVER_DISPATCH MsfsWrite
;
83 NTSTATUS DEFAULTAPI
MsfsWrite(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
85 DRIVER_DISPATCH MsfsFileSystemControl
;
86 NTSTATUS DEFAULTAPI
MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
89 DriverEntry(PDRIVER_OBJECT DriverObject
,
90 PUNICODE_STRING RegistryPath
);
92 #endif /* __DRIVERS_FS_MS_MSFS_H */