3 #ifndef __DRIVERS_FS_NP_NPFS_H
4 #define __DRIVERS_FS_NP_NPFS_H
6 typedef struct _NPFS_DEVICE_EXTENSION
8 LIST_ENTRY PipeListHead
;
13 } NPFS_DEVICE_EXTENSION
, *PNPFS_DEVICE_EXTENSION
;
15 typedef struct _NPFS_PIPE
17 UNICODE_STRING PipeName
;
18 LIST_ENTRY PipeListEntry
;
20 LIST_ENTRY ServerFcbListHead
;
21 LIST_ENTRY ClientFcbListHead
;
26 ULONG PipeConfiguration
;
27 ULONG MaximumInstances
;
28 ULONG CurrentInstances
;
31 LARGE_INTEGER TimeOut
;
32 } NPFS_PIPE
, *PNPFS_PIPE
;
34 typedef struct _NPFS_FCB
36 LIST_ENTRY FcbListEntry
;
37 struct _NPFS_FCB
* OtherSide
;
38 struct ETHREAD
*Thread
;
44 ULONG ReadDataAvailable
;
45 ULONG WriteQuotaAvailable
;
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);
68 NTSTATUS STDCALL
NpfsCreate(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
69 NTSTATUS STDCALL
NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
70 NTSTATUS STDCALL
NpfsClose(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
72 NTSTATUS STDCALL
NpfsRead(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
73 NTSTATUS STDCALL
NpfsWrite(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
75 NTSTATUS STDCALL
NpfsFlushBuffers(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
77 NTSTATUS STDCALL
NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
79 NTSTATUS STDCALL
NpfsQueryInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
80 NTSTATUS STDCALL
NpfsSetInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
82 NTSTATUS STDCALL
NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
84 #endif /* __DRIVERS_FS_NP_NPFS_H */