3 #ifndef __SERVICES_FS_NP_NPFS_H
4 #define __SERVICES_FS_NP_NPFS_H
9 LIST_ENTRY PipeListHead;
14 } NPFS_DEVICE_EXTENSION, *PNPFS_DEVICE_EXTENSION;
18 UNICODE_STRING PipeName;
19 LIST_ENTRY PipeListEntry;
20 KSPIN_LOCK FcbListLock;
21 LIST_ENTRY ServerFcbListHead;
22 LIST_ENTRY ClientFcbListHead;
28 ULONG PipeConfiguration;
29 ULONG MaximumInstances;
30 ULONG CurrentInstances;
33 LARGE_INTEGER TimeOut;
34 } NPFS_PIPE, *PNPFS_PIPE;
36 typedef struct _NPFS_FCB
38 LIST_ENTRY FcbListEntry;
39 struct _NPFS_FCB* OtherSide;
45 ULONG ReadDataAvailable;
46 ULONG WriteQuotaAvailable;
53 KSPIN_LOCK DataListLock; /* Data queue lock */
54 } NPFS_FCB, *PNPFS_FCB;
57 extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList;
60 #define KeLockMutex(x) KeWaitForSingleObject(x, \
66 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
68 #define CP DPRINT("\n");
71 NTSTATUS STDCALL NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
72 NTSTATUS STDCALL NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
73 NTSTATUS STDCALL NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
75 NTSTATUS STDCALL NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
76 NTSTATUS STDCALL NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
78 NTSTATUS STDCALL NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
80 NTSTATUS STDCALL NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
81 NTSTATUS STDCALL NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
83 NTSTATUS STDCALL NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp);
85 #endif /* __SERVICES_FS_NP_NPFS_H */