1 /* $Id: npfs.h,v 1.12 2002/09/07 15:12:02 chorns Exp $ */
3 #ifndef __SERVICES_FS_NP_NPFS_H
4 #define __SERVICES_FS_NP_NPFS_H
6 #define NTOS_KERNEL_MODE
11 LIST_ENTRY PipeListHead
;
13 } NPFS_DEVICE_EXTENSION
, *PNPFS_DEVICE_EXTENSION
;
21 } NPFS_PIPE_DATA
, *PNPFS_PIPE_DATA
;
25 UNICODE_STRING PipeName
;
26 LIST_ENTRY PipeListEntry
;
27 KSPIN_LOCK FcbListLock
;
28 LIST_ENTRY ServerFcbListHead
;
29 LIST_ENTRY ClientFcbListHead
;
35 ULONG PipeConfiguration
;
36 ULONG MaximumInstances
;
37 ULONG CurrentInstances
;
40 LARGE_INTEGER TimeOut
;
41 } NPFS_PIPE
, *PNPFS_PIPE
;
43 typedef struct _NPFS_FCB
45 LIST_ENTRY FcbListEntry
;
46 struct _NPFS_FCB
* OtherSide
;
52 ULONG ReadDataAvailable
;
53 ULONG WriteQuotaAvailable
;
55 LIST_ENTRY DataListHead
; /* Data queue */
56 KSPIN_LOCK DataListLock
; /* Data queue lock */
57 } NPFS_FCB
, *PNPFS_FCB
;
60 extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList
;
63 #define KeLockMutex(x) KeWaitForSingleObject(x, \
69 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
71 #define CP DPRINT("\n");
74 NpfsFreePipeData(PNPFS_PIPE_DATA PipeData
)
78 ExFreePool(PipeData
->Data
);
80 ExFreeToNPagedLookasideList(&NpfsPipeDataLookasideList
, PipeData
);
84 NTSTATUS STDCALL
NpfsCreate(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
85 NTSTATUS STDCALL
NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
86 NTSTATUS STDCALL
NpfsClose(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
88 NTSTATUS STDCALL
NpfsRead(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
89 NTSTATUS STDCALL
NpfsWrite(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
91 NTSTATUS STDCALL
NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
93 NTSTATUS STDCALL
NpfsQueryInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
94 NTSTATUS STDCALL
NpfsSetInformation(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
96 NTSTATUS STDCALL
NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
98 #endif /* __SERVICES_FS_NP_NPFS_H */