X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdrivers%2Ffilesystems%2Fnpfs%2Fnpfs.h;h=cb37cb0564d4527659a0bafefe88db32dc24c207;hp=373980ce6d5b45fded804439a9c91dde7ab8e6c9;hb=abf6a5bfd515f3ae3a5e8b3228e27a7754f084b6;hpb=4e31a0e529d47115d79c6e1e2b32ecb0e016235a diff --git a/reactos/drivers/filesystems/npfs/npfs.h b/reactos/drivers/filesystems/npfs/npfs.h index 373980ce6d5..cb37cb0564d 100644 --- a/reactos/drivers/filesystems/npfs/npfs.h +++ b/reactos/drivers/filesystems/npfs/npfs.h @@ -4,7 +4,22 @@ #include #include -typedef struct _NPFS_DEVICE_EXTENSION +typedef enum _FCB_TYPE +{ + FCB_DEVICE, + FCB_DIRECTORY, + FCB_PIPE +} FCB_TYPE; + +typedef enum _CCB_TYPE +{ + CCB_DEVICE, + CCB_DIRECTORY, + CCB_PIPE +} CCB_TYPE; + +/* Volume Control Block (VCB) aka Device Extension */ +typedef struct _NPFS_VCB { LIST_ENTRY PipeListHead; LIST_ENTRY ThreadListHead; @@ -13,11 +28,13 @@ typedef struct _NPFS_DEVICE_EXTENSION ULONG MinQuota; ULONG DefaultQuota; ULONG MaxQuota; -} NPFS_DEVICE_EXTENSION, *PNPFS_DEVICE_EXTENSION; + struct _NPFS_FCB *RootFcb; +} NPFS_VCB, *PNPFS_VCB; typedef struct _NPFS_FCB { - FSRTL_COMMON_FCB_HEADER RFCB; + FCB_TYPE Type; + PNPFS_VCB Vcb; UNICODE_STRING PipeName; LIST_ENTRY PipeListEntry; KMUTEX CcbListLock; @@ -40,9 +57,11 @@ typedef struct _NPFS_FCB typedef struct _NPFS_CCB { LIST_ENTRY CcbListEntry; + CCB_TYPE Type; + PNPFS_FCB Fcb; + struct _NPFS_CCB* OtherSide; struct ETHREAD *Thread; - PNPFS_FCB Fcb; KEVENT ConnectEvent; KEVENT ReadEvent; KEVENT WriteEvent; @@ -71,7 +90,7 @@ typedef struct _NPFS_THREAD_CONTEXT { ULONG Count; KEVENT Event; - PNPFS_DEVICE_EXTENSION DeviceExt; + PNPFS_VCB Vcb; LIST_ENTRY ListEntry; PVOID WaitObjectArray[MAXIMUM_WAIT_OBJECTS]; KWAIT_BLOCK WaitBlockArray[MAXIMUM_WAIT_OBJECTS]; @@ -135,4 +154,9 @@ NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath); +PNPFS_FCB +NpfsFindPipe(PNPFS_VCB Vcb, + PUNICODE_STRING PipeName); + + #endif /* __DRIVERS_FS_NP_NPFS_H */