1 #ifndef __INCLUDE_DDK_FSTYPES_H
2 #define __INCLUDE_DDK_FSTYPES_H
3 /* $Id: fstypes.h,v 1.8 2002/11/07 02:44:49 robd Exp $ */
5 #define FSRTL_TAG TAG('F','S','r','t')
7 typedef struct _FILE_LOCK_INFO
{
8 LARGE_INTEGER StartingByte
;
10 BOOLEAN ExclusiveLock
;
12 PFILE_OBJECT FileObject
;
14 LARGE_INTEGER EndingByte
;
15 } FILE_LOCK_INFO
, *PFILE_LOCK_INFO
;
17 typedef struct _FILE_LOCK_TOC
{
19 LIST_ENTRY GrantedListHead
;
20 LIST_ENTRY PendingListHead
;
21 } FILE_LOCK_TOC
, *PFILE_LOCK_TOC
;
23 typedef struct _FILE_LOCK_GRANTED
{
26 } FILE_LOCK_GRANTED
, *PFILE_LOCK_GRANTED
;
28 typedef struct _FILE_LOCK_PENDING
{
32 } FILE_LOCK_PENDING
, *PFILE_LOCK_PENDING
;
34 // raw internal file lock struct returned from FsRtlGetNextFileLock
35 typedef struct _FILE_SHARED_LOCK_ENTRY
{
38 FILE_LOCK_INFO FileLock
;
39 } FILE_SHARED_LOCK_ENTRY
, *PFILE_SHARED_LOCK_ENTRY
;
41 // raw internal file lock struct returned from FsRtlGetNextFileLock
42 typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY
{
46 FILE_LOCK_INFO FileLock
;
47 } FILE_EXCLUSIVE_LOCK_ENTRY
, *PFILE_EXCLUSIVE_LOCK_ENTRY
;
49 typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE
) (
54 typedef VOID (*PUNLOCK_ROUTINE
) (
56 IN PFILE_LOCK_INFO FileLockInfo
59 typedef struct _FILE_LOCK
{
60 PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine
;
61 PUNLOCK_ROUTINE UnlockRoutine
;
62 BOOLEAN FastIoIsQuestionable
;
64 PVOID LockInformation
;
65 FILE_LOCK_INFO LastReturnedLockInfo
;
66 PVOID LastReturnedLock
;
67 } FILE_LOCK
, *PFILE_LOCK
;
69 typedef struct _TUNNEL
{
71 PRTL_SPLAY_LINKS Cache
;
72 LIST_ENTRY TimerQueue
;
76 typedef struct _NOTIFY_SYNC
78 DWORD Unknown0
; /* 0x00 */
79 DWORD Unknown1
; /* 0x04 */
80 DWORD Unknown2
; /* 0x08 */
81 WORD Unknown3
; /* 0x0c */
82 WORD Unknown4
; /* 0x0e */
83 DWORD Unknown5
; /* 0x10 */
84 DWORD Unknown6
; /* 0x14 */
85 DWORD Unknown7
; /* 0x18 */
86 DWORD Unknown8
; /* 0x1c */
87 DWORD Unknown9
; /* 0x20 */
88 DWORD Unknown10
; /* 0x24 */
90 } NOTIFY_SYNC
, * PNOTIFY_SYNC
;
93 typedef struct _LARGE_MCB
95 PFAST_MUTEX FastMutex
;
96 ULONG MaximumPairCount
;
100 } LARGE_MCB
, *PLARGE_MCB
;
104 (*POPLOCK_WAIT_COMPLETE_ROUTINE
)(PVOID Context
,
108 (*POPLOCK_FS_PREPOST_IRP
)(PVOID Context
,
111 typedef PVOID OPLOCK
, *POPLOCK
;
113 #endif /* __INCLUDE_DDK_FSFUNCS_H */