1 #ifndef __SERVICES_FS_MS_MSFS_H
2 #define __SERVICES_FS_MS_MSFS_H
4 typedef struct _MSFS_DEVICE_EXTENSION
6 LIST_ENTRY MailslotListHead;
7 KMUTEX MailslotListLock;
8 } MSFS_DEVICE_EXTENSION, *PMSFS_DEVICE_EXTENSION;
10 typedef struct _MSFS_MAILSLOT
13 LIST_ENTRY MailslotListEntry;
14 KSPIN_LOCK FcbListLock;
15 LIST_ENTRY FcbListHead;
16 struct _MSFS_FCB *ServerFcb;
18 LARGE_INTEGER TimeOut;
22 KSPIN_LOCK MessageListLock;
23 LIST_ENTRY MessageListHead;
24 } MSFS_MAILSLOT, *PMSFS_MAILSLOT;
26 typedef struct _MSFS_FCB
28 LIST_ENTRY FcbListEntry;
29 PMSFS_MAILSLOT Mailslot;
30 } MSFS_FCB, *PMSFS_FCB;
32 typedef struct _MSFS_MESSAGE
34 LIST_ENTRY MessageListEntry;
37 } MSFS_MESSAGE, *PMSFS_MESSAGE;
40 #define KeLockMutex(x) KeWaitForSingleObject(x, \
46 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
48 NTSTATUS STDCALL MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
49 NTSTATUS STDCALL MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp);
50 NTSTATUS STDCALL MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
52 NTSTATUS STDCALL MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
53 NTSTATUS STDCALL MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
55 NTSTATUS STDCALL MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
56 NTSTATUS STDCALL MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
58 NTSTATUS STDCALL MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
60 #endif /* __SERVICES_FS_NP_NPFS_H */