1999-11-24 11:51:55 +00:00
|
|
|
#ifndef __SERVICES_FS_NP_NPFS_H
|
|
|
|
#define __SERVICES_FS_NP_NPFS_H
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2001-05-10 23:38:31 +00:00
|
|
|
LIST_ENTRY PipeListHead;
|
|
|
|
KMUTEX PipeListLock;
|
1999-11-24 11:51:55 +00:00
|
|
|
} NPFS_DEVICE_EXTENSION, *PNPFS_DEVICE_EXTENSION;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2001-05-10 23:38:31 +00:00
|
|
|
UNICODE_STRING PipeName;
|
2000-05-13 13:51:08 +00:00
|
|
|
LIST_ENTRY PipeListEntry;
|
|
|
|
KSPIN_LOCK FcbListLock;
|
|
|
|
LIST_ENTRY FcbListHead;
|
|
|
|
ULONG ReferenceCount;
|
|
|
|
ULONG MaxInstances;
|
2001-05-01 11:09:01 +00:00
|
|
|
LARGE_INTEGER TimeOut;
|
2000-05-13 13:51:08 +00:00
|
|
|
} NPFS_PIPE, *PNPFS_PIPE;
|
1999-11-24 11:51:55 +00:00
|
|
|
|
2000-05-13 13:51:08 +00:00
|
|
|
typedef struct _NPFS_FCB
|
1999-11-24 11:51:55 +00:00
|
|
|
{
|
2000-05-13 13:51:08 +00:00
|
|
|
LIST_ENTRY FcbListEntry;
|
|
|
|
BOOLEAN WriteModeMessage;
|
|
|
|
BOOLEAN ReadModeMessage;
|
|
|
|
BOOLEAN NonBlocking;
|
2000-03-26 22:00:10 +00:00
|
|
|
ULONG InBufferSize;
|
|
|
|
ULONG OutBufferSize;
|
2000-05-13 13:51:08 +00:00
|
|
|
PNPFS_PIPE Pipe;
|
|
|
|
struct _NPFS_FCB* OtherSide;
|
|
|
|
BOOLEAN IsServer;
|
2001-05-10 23:38:31 +00:00
|
|
|
KEVENT ConnectEvent;
|
2000-05-13 13:51:08 +00:00
|
|
|
} NPFS_FCB, *PNPFS_FCB;
|
|
|
|
|
|
|
|
|
|
|
|
#define KeLockMutex(x) KeWaitForSingleObject(x, \
|
|
|
|
UserRequest, \
|
|
|
|
KernelMode, \
|
|
|
|
FALSE, \
|
|
|
|
NULL);
|
1999-11-24 11:51:55 +00:00
|
|
|
|
2000-05-13 13:51:08 +00:00
|
|
|
#define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
|
2000-03-26 22:00:10 +00:00
|
|
|
|
2001-05-01 11:09:01 +00:00
|
|
|
NTSTATUS STDCALL NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS STDCALL NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS STDCALL NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
|
|
|
NTSTATUS STDCALL NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS STDCALL NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
|
|
|
NTSTATUS STDCALL NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
2001-06-12 12:35:42 +00:00
|
|
|
NTSTATUS STDCALL NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS STDCALL NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
|
|
|
NTSTATUS STDCALL NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
1999-11-24 11:51:55 +00:00
|
|
|
#endif /* __SERVICES_FS_NP_NPFS_H */
|