1 #ifndef __SERVICES_FS_NP_NPFS_H
2 #define __SERVICES_FS_NP_NPFS_H
7 LIST_ENTRY PipeListHead
;
9 } NPFS_DEVICE_EXTENSION
, *PNPFS_DEVICE_EXTENSION
;
17 } NPFS_PIPE_DATA
, *PNPFS_PIPE_DATA
;
21 UNICODE_STRING PipeName
;
22 LIST_ENTRY PipeListEntry
;
23 KSPIN_LOCK FcbListLock
;
24 LIST_ENTRY ServerFcbListHead
;
25 LIST_ENTRY ClientFcbListHead
;
31 ULONG PipeConfiguration
;
32 ULONG MaximumInstances
;
33 ULONG CurrentInstances
;
36 LARGE_INTEGER TimeOut
;
37 } NPFS_PIPE
, *PNPFS_PIPE
;
39 typedef struct _NPFS_FCB
41 LIST_ENTRY FcbListEntry
;
42 struct _NPFS_FCB
* OtherSide
;
48 ULONG ReadDataAvailable
;
49 ULONG WriteQuotaAvailable
;
51 LIST_ENTRY DataListHead
; /* Data queue */
52 KSPIN_LOCK DataListLock
; /* Data queue lock */
53 } NPFS_FCB
, *PNPFS_FCB
;
56 extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList
;
59 #define KeLockMutex(x) KeWaitForSingleObject(x, \
65 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
67 #define CP DPRINT("\n");
69 NTSTATUS STDCALL
NpfsCreate(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
70 NTSTATUS STDCALL
NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
71 NTSTATUS STDCALL
NpfsClose(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
73 NTSTATUS STDCALL
NpfsRead(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
74 NTSTATUS STDCALL
NpfsWrite(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
76 NTSTATUS STDCALL
NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
78 NTSTATUS STDCALL
NpfsQueryInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
79 NTSTATUS STDCALL
NpfsSetInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
81 NTSTATUS STDCALL
NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
83 #endif /* __SERVICES_FS_NP_NPFS_H */