1 #ifndef __INCLUDE_DDK_FSTYPES_H
2 #define __INCLUDE_DDK_FSTYPES_H
3 /* $Id: fstypes.h,v 1.10 2003/04/19 17:17:10 ea Exp $ */
5 #define FSRTL_TAG TAG('F','S','r','t')
13 typedef struct _FILE_LOCK_INFO
{
14 LARGE_INTEGER StartingByte
;
16 BOOLEAN ExclusiveLock
;
18 PFILE_OBJECT FileObject
;
20 LARGE_INTEGER EndingByte
;
21 } FILE_LOCK_INFO
, *PFILE_LOCK_INFO
;
23 typedef struct _FILE_LOCK_TOC
{
25 LIST_ENTRY GrantedListHead
;
26 LIST_ENTRY PendingListHead
;
27 LIST_ENTRY CompletedListHead
;
28 LIST_ENTRY UnlockedListHead
;
29 } FILE_LOCK_TOC
, *PFILE_LOCK_TOC
;
31 typedef struct _FILE_LOCK_GRANTED
{
34 } FILE_LOCK_GRANTED
, *PFILE_LOCK_GRANTED
;
36 typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE
) (
41 typedef VOID (*PUNLOCK_ROUTINE
) (
43 IN PFILE_LOCK_INFO FileLockInfo
46 typedef struct _FILE_LOCK
{
47 PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine
;
48 PUNLOCK_ROUTINE UnlockRoutine
;
49 BOOLEAN FastIoIsQuestionable
;
51 PVOID LockInformation
;
52 FILE_LOCK_INFO LastReturnedLockInfo
;
53 PVOID LastReturnedLock
;
54 } FILE_LOCK
, *PFILE_LOCK
;
56 typedef struct _TUNNEL
{
58 PRTL_SPLAY_LINKS Cache
;
59 LIST_ENTRY TimerQueue
;
63 typedef struct _NOTIFY_SYNC
65 DWORD Unknown0
; /* 0x00 */
66 DWORD Unknown1
; /* 0x04 */
67 DWORD Unknown2
; /* 0x08 */
68 WORD Unknown3
; /* 0x0c */
69 WORD Unknown4
; /* 0x0e */
70 DWORD Unknown5
; /* 0x10 */
71 DWORD Unknown6
; /* 0x14 */
72 DWORD Unknown7
; /* 0x18 */
73 DWORD Unknown8
; /* 0x1c */
74 DWORD Unknown9
; /* 0x20 */
75 DWORD Unknown10
; /* 0x24 */
77 } NOTIFY_SYNC
, * PNOTIFY_SYNC
;
80 typedef struct _LARGE_MCB
82 PFAST_MUTEX FastMutex
;
83 ULONG MaximumPairCount
;
87 } LARGE_MCB
, *PLARGE_MCB
;
94 (*POPLOCK_WAIT_COMPLETE_ROUTINE
)(PVOID Context
,
98 (*POPLOCK_FS_PREPOST_IRP
)(PVOID Context
,
101 typedef PVOID OPLOCK
, *POPLOCK
;
103 #endif /* __INCLUDE_DDK_FSFUNCS_H */