3 #ifndef __SERVICES_FS_NP_NPFS_H
4 #define __SERVICES_FS_NP_NPFS_H
9 LIST_ENTRY PipeListHead;
11 } NPFS_DEVICE_EXTENSION, *PNPFS_DEVICE_EXTENSION;
19 } NPFS_PIPE_DATA, *PNPFS_PIPE_DATA;
23 UNICODE_STRING PipeName;
24 LIST_ENTRY PipeListEntry;
25 KSPIN_LOCK FcbListLock;
26 LIST_ENTRY ServerFcbListHead;
27 LIST_ENTRY ClientFcbListHead;
33 ULONG PipeConfiguration;
34 ULONG MaximumInstances;
35 ULONG CurrentInstances;
38 LARGE_INTEGER TimeOut;
39 } NPFS_PIPE, *PNPFS_PIPE;
41 typedef struct _NPFS_FCB
43 LIST_ENTRY FcbListEntry;
44 struct _NPFS_FCB* OtherSide;
50 ULONG ReadDataAvailable;
51 ULONG WriteQuotaAvailable;
53 LIST_ENTRY DataListHead; /* Data queue */
54 KSPIN_LOCK DataListLock; /* Data queue lock */
55 } NPFS_FCB, *PNPFS_FCB;
58 extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList;
61 #define KeLockMutex(x) KeWaitForSingleObject(x, \
67 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
69 #define CP DPRINT("\n");
72 NpfsFreePipeData(PNPFS_PIPE_DATA PipeData)
76 ExFreePool(PipeData->Data);
78 ExFreeToNPagedLookasideList(&NpfsPipeDataLookasideList, PipeData);
82 NTSTATUS STDCALL NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
83 NTSTATUS STDCALL NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
84 NTSTATUS STDCALL NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
86 NTSTATUS STDCALL NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
87 NTSTATUS STDCALL NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
89 NTSTATUS STDCALL NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
91 NTSTATUS STDCALL NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
92 NTSTATUS STDCALL NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
94 NTSTATUS STDCALL NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp);
96 #endif /* __SERVICES_FS_NP_NPFS_H */