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
15 #define DEFAULTAPI NTAPI
17 typedef struct _MSFS_DEVICE_EXTENSION
19 LIST_ENTRY FcbListHead
;
21 } MSFS_DEVICE_EXTENSION
, *PMSFS_DEVICE_EXTENSION
;
24 typedef struct _MSFS_FCB
26 FSRTL_COMMON_FCB_HEADER RFCB
;
28 LIST_ENTRY FcbListEntry
;
29 KSPIN_LOCK CcbListLock
;
30 LIST_ENTRY CcbListHead
;
31 struct _MSFS_CCB
*ServerCcb
;
33 LARGE_INTEGER TimeOut
;
37 KSPIN_LOCK MessageListLock
;
38 LIST_ENTRY MessageListHead
;
39 } MSFS_FCB
, *PMSFS_FCB
;
42 typedef struct _MSFS_CCB
44 LIST_ENTRY CcbListEntry
;
46 } MSFS_CCB
, *PMSFS_CCB
;
49 typedef struct _MSFS_MESSAGE
51 LIST_ENTRY MessageListEntry
;
54 } MSFS_MESSAGE
, *PMSFS_MESSAGE
;
57 #define KeLockMutex(x) KeWaitForSingleObject(x, \
63 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
65 DRIVER_DISPATCH MsfsCreate
;
66 NTSTATUS DEFAULTAPI
MsfsCreate(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
68 DRIVER_DISPATCH MsfsCreateMailslot
;
69 NTSTATUS DEFAULTAPI
MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
71 DRIVER_DISPATCH MsfsClose
;
72 NTSTATUS DEFAULTAPI
MsfsClose(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
74 DRIVER_DISPATCH MsfsQueryInformation
;
75 NTSTATUS DEFAULTAPI
MsfsQueryInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
77 DRIVER_DISPATCH MsfsSetInformation
;
78 NTSTATUS DEFAULTAPI
MsfsSetInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
80 DRIVER_DISPATCH MsfsRead
;
81 NTSTATUS DEFAULTAPI
MsfsRead(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
83 DRIVER_DISPATCH MsfsWrite
;
84 NTSTATUS DEFAULTAPI
MsfsWrite(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
86 DRIVER_DISPATCH MsfsFileSystemControl
;
87 NTSTATUS DEFAULTAPI
MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
90 DriverEntry(PDRIVER_OBJECT DriverObject
,
91 PUNICODE_STRING RegistryPath
);
93 #endif /* __DRIVERS_FS_MS_MSFS_H */