mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 18:52:57 +00:00
Manually applying Gunnars patch became it's easier this way - and a good chance to review mods.
svn path=/trunk/; revision=3715
This commit is contained in:
parent
a079c4b347
commit
f2064b3f8b
5 changed files with 52 additions and 4 deletions
|
@ -1,8 +1,23 @@
|
||||||
#ifndef __INCLUDE_DDK_FSFUNCS_H
|
#ifndef __INCLUDE_DDK_FSFUNCS_H
|
||||||
#define __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
|
BOOLEAN STDCALL
|
||||||
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
|
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
IN LONGLONG Vbn,
|
IN LONGLONG Vbn,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef __INCLUDE_DDK_FSTYPES_H
|
#ifndef __INCLUDE_DDK_FSTYPES_H
|
||||||
#define __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')
|
||||||
|
|
||||||
|
@ -14,6 +14,23 @@ typedef struct _FILE_LOCK_INFO {
|
||||||
LARGE_INTEGER EndingByte;
|
LARGE_INTEGER EndingByte;
|
||||||
} FILE_LOCK_INFO, *PFILE_LOCK_INFO;
|
} 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
|
// raw internal file lock struct returned from FsRtlGetNextFileLock
|
||||||
typedef struct _FILE_SHARED_LOCK_ENTRY {
|
typedef struct _FILE_SHARED_LOCK_ENTRY {
|
||||||
PVOID Unknown1;
|
PVOID Unknown1;
|
||||||
|
|
|
@ -248,6 +248,14 @@ enum
|
||||||
|
|
||||||
#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
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $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 $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -432,6 +432,14 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION
|
||||||
struct _SCSI_REQUEST_BLOCK *Srb;
|
struct _SCSI_REQUEST_BLOCK *Srb;
|
||||||
} Scsi;
|
} Scsi;
|
||||||
|
|
||||||
|
//byte range file locking
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
PLARGE_INTEGER Length;
|
||||||
|
ULONG Key;
|
||||||
|
LARGE_INTEGER ByteOffset;
|
||||||
|
} LockControl;
|
||||||
|
|
||||||
/* Paramters for other calls */
|
/* Paramters for other calls */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#define HEAP_NO_SERIALIZE (1)
|
#define HEAP_NO_SERIALIZE (1)
|
||||||
#define HEAP_ZERO_MEMORY (8)
|
#define HEAP_ZERO_MEMORY (8)
|
||||||
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
|
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
|
||||||
#define HEAP_GROWABLE (32)
|
#define HEAP_GROWABLE (2)
|
||||||
#define HEAP_NO_VALLOC (64)
|
#define HEAP_NO_VALLOC (64)
|
||||||
|
|
||||||
#endif /* __INCLUDE_HEAP_H */
|
#endif /* __INCLUDE_HEAP_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue