summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a079c4b)
svn path=/trunk/; revision=3715
#ifndef __INCLUDE_DDK_FSFUNCS_H
#define __INCLUDE_DDK_FSFUNCS_H
#ifndef __INCLUDE_DDK_FSFUNCS_H
#define __INCLUDE_DDK_FSFUNCS_H
-/* $Id: fsfuncs.h,v 1.16 2002/09/08 10:47:44 chorns Exp $ */
+/* $Id: fsfuncs.h,v 1.17 2002/11/07 02:44:49 robd Exp $ */
#define FlagOn(x,f) ((x) & (f))
#define FlagOn(x,f) ((x) & (f))
+VOID
+STDCALL
+FsRtlFreeFileLock(
+ IN PFILE_LOCK FileLock
+ );
+
+PFILE_LOCK
+STDCALL
+FsRtlAllocateFileLock (
+ IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
+ IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
+ );
+
+#define FsRtlAreThereCurrentFileLocks(FL) (((FL)->FastIoIsQuestionable))
+
BOOLEAN STDCALL
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
BOOLEAN STDCALL
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
#ifndef __INCLUDE_DDK_FSTYPES_H
#define __INCLUDE_DDK_FSTYPES_H
#ifndef __INCLUDE_DDK_FSTYPES_H
#define __INCLUDE_DDK_FSTYPES_H
-/* $Id: fstypes.h,v 1.7 2002/09/08 10:47:44 chorns Exp $ */
+/* $Id: fstypes.h,v 1.8 2002/11/07 02:44:49 robd Exp $ */
#define FSRTL_TAG TAG('F','S','r','t')
#define FSRTL_TAG TAG('F','S','r','t')
LARGE_INTEGER EndingByte;
} FILE_LOCK_INFO, *PFILE_LOCK_INFO;
LARGE_INTEGER EndingByte;
} FILE_LOCK_INFO, *PFILE_LOCK_INFO;
+typedef struct _FILE_LOCK_TOC {
+ KSPIN_LOCK SpinLock;
+ LIST_ENTRY GrantedListHead;
+ LIST_ENTRY PendingListHead;
+} FILE_LOCK_TOC, *PFILE_LOCK_TOC;
+
+typedef struct _FILE_LOCK_GRANTED {
+ LIST_ENTRY ListEntry;
+ FILE_LOCK_INFO Lock;
+} FILE_LOCK_GRANTED, *PFILE_LOCK_GRANTED;
+
+typedef struct _FILE_LOCK_PENDING {
+ LIST_ENTRY ListEntry;
+ PIRP Irp;
+ PVOID Context;
+} FILE_LOCK_PENDING, *PFILE_LOCK_PENDING;
+
// raw internal file lock struct returned from FsRtlGetNextFileLock
typedef struct _FILE_SHARED_LOCK_ENTRY {
PVOID Unknown1;
// raw internal file lock struct returned from FsRtlGetNextFileLock
typedef struct _FILE_SHARED_LOCK_ENTRY {
PVOID Unknown1;
#define IRP_MJ_SCSI IRP_MJ_INTERNAL_DEVICE_CONTROL
#define IRP_MJ_SCSI IRP_MJ_INTERNAL_DEVICE_CONTROL
+/*
+ * Minor function numbers for IRP_MJ_LOCK_CONTROL
+ */
+#define IRP_MN_LOCK 0x01
+#define IRP_MN_UNLOCK_SINGLE 0x02
+#define IRP_MN_UNLOCK_ALL 0x03
+#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
+
/*
* Minor function numbers for IRP_MJ_FILE_SYSTEM_CONTROL
*/
/*
* Minor function numbers for IRP_MJ_FILE_SYSTEM_CONTROL
*/
-/* $Id: iotypes.h,v 1.43 2002/10/05 10:53:36 dwelch Exp $
+/* $Id: iotypes.h,v 1.44 2002/11/07 02:44:49 robd Exp $
struct _SCSI_REQUEST_BLOCK *Srb;
} Scsi;
struct _SCSI_REQUEST_BLOCK *Srb;
} Scsi;
+ //byte range file locking
+ struct
+ {
+ PLARGE_INTEGER Length;
+ ULONG Key;
+ LARGE_INTEGER ByteOffset;
+ } LockControl;
+
/* Paramters for other calls */
struct
{
/* Paramters for other calls */
struct
{
#define HEAP_NO_SERIALIZE (1)
#define HEAP_ZERO_MEMORY (8)
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
#define HEAP_NO_SERIALIZE (1)
#define HEAP_ZERO_MEMORY (8)
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
-#define HEAP_GROWABLE (32)
+#define HEAP_GROWABLE (2)
#define HEAP_NO_VALLOC (64)
#endif /* __INCLUDE_HEAP_H */
#define HEAP_NO_VALLOC (64)
#endif /* __INCLUDE_HEAP_H */