mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 19:26:16 +00:00
Implemented:
ExSetResourceOwnerPointer, FsRtlDissectDbcs, FsRtlDoesDbcsContainWildCards, FsRtlAcquireFileExclusive, FsRtlReleaseFile, FsRtlGetNextMcbEntry, FsRtlLookupLastMcbEntry, FsRtlLookupMcbEntry, FsRtlRemoveMcbEntry, FsRtlIncrementCcFastReadResourceMiss, FsRtlIncrementCcFastReadNotPossible, FsRtlIncrementCcFastReadWait, FsRtlIncrementCcFastReadNoWait , FsRtlAreNamesEqual, FsRtlDoesNameContainWildCards, IoCreateDriver, IoDeleteDriver Thanks to Filip for reviewing some of these. svn path=/trunk/; revision=12408
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#ifndef __INCLUDE_DDK_FSFUNCS_H
|
||||
#define __INCLUDE_DDK_FSFUNCS_H
|
||||
/* $Id: fsfuncs.h,v 1.30 2004/11/21 17:47:22 navaraf Exp $ */
|
||||
/* $Id: fsfuncs.h,v 1.31 2004/12/30 18:30:04 ion Exp $ */
|
||||
#define FlagOn(x,f) ((x) & (f))
|
||||
|
||||
#include <ntos/fstypes.h>
|
||||
@@ -60,6 +60,7 @@ extern PUCHAR IMPORTED FsRtlLegalAnsiCharacterArray;
|
||||
|
||||
#define FSRTL_WILD_CHARACTER 0x08
|
||||
|
||||
typedef signed char SCHAR;
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
@@ -414,9 +415,54 @@ FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus);
|
||||
#define FsRtlIsUnicodeCharacterWild(C) ( \
|
||||
(((C) >= 0x40) ? \
|
||||
FALSE : \
|
||||
FlagOn((*FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \
|
||||
FlagOn((FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \
|
||||
)
|
||||
|
||||
#define FSRTL_FAT_LEGAL 0x01
|
||||
#define FSRTL_HPFS_LEGAL 0x02
|
||||
#define FSRTL_NTFS_LEGAL 0x04
|
||||
#define FSRTL_WILD_CHARACTER 0x08
|
||||
#define FSRTL_OLE_LEGAL 0x10
|
||||
#define FSRTL_NTFS_STREAM_LEGAL (FSRTL_NTFS_LEGAL | FSRTL_OLE_LEGAL)
|
||||
|
||||
#define FsRtlIsAnsiCharacterWild(C) ( \
|
||||
FsRtlTestAnsiCharacter((C), FALSE, FALSE, FSRTL_WILD_CHARACTER) \
|
||||
)
|
||||
|
||||
#define FsRtlIsAnsiCharacterLegalFat(C,WILD_OK) ( \
|
||||
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_FAT_LEGAL) \
|
||||
)
|
||||
|
||||
#define FsRtlIsAnsiCharacterLegalHpfs(C,WILD_OK) ( \
|
||||
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_HPFS_LEGAL) \
|
||||
)
|
||||
|
||||
#define FsRtlIsAnsiCharacterLegalNtfs(C,WILD_OK) ( \
|
||||
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_LEGAL) \
|
||||
)
|
||||
|
||||
#define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) ( \
|
||||
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL) \
|
||||
)
|
||||
|
||||
#define FsRtlIsAnsiCharacterLegal(C,FLAGS) ( \
|
||||
FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS)) \
|
||||
)
|
||||
|
||||
#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) ( \
|
||||
((SCHAR)(C) < 0) ? DEFAULT_RET : \
|
||||
FlagOn(FsRtlLegalAnsiCharacterArray[(int)(C)], \
|
||||
(FLAGS) | \
|
||||
((WILD_OK) ? FSRTL_WILD_CHARACTER : 0) ) \
|
||||
)
|
||||
|
||||
#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) ( \
|
||||
(BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
|
||||
(NLS_MB_CODE_PAGE_TAG && \
|
||||
(NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))) \
|
||||
)
|
||||
|
||||
|
||||
BOOLEAN STDCALL
|
||||
FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||
IN LONGLONG Vbn,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: iotypes.h,v 1.72 2004/12/23 12:28:31 ekohl Exp $
|
||||
/* $Id: iotypes.h,v 1.73 2004/12/30 18:30:04 ion Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -801,6 +801,14 @@ typedef BOOLEAN STDCALL_FUNC
|
||||
OUT PIO_STATUS_BLOCK IoStatus,
|
||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||
|
||||
typedef VOID
|
||||
(*PFAST_IO_ACQUIRE_FILE) (
|
||||
IN struct _FILE_OBJECT *FileObject);
|
||||
|
||||
typedef VOID
|
||||
(*PFAST_IO_RELEASE_FILE) (
|
||||
IN struct _FILE_OBJECT *FileObject);
|
||||
|
||||
typedef struct _FAST_IO_DISPATCH {
|
||||
ULONG SizeOfFastIoDispatch;
|
||||
PFAST_IO_ROUTINE FastIoCheckIfPossible;
|
||||
@@ -813,8 +821,8 @@ typedef struct _FAST_IO_DISPATCH {
|
||||
PFAST_IO_ROUTINE FastIoUnlockAll;
|
||||
PFAST_IO_ROUTINE FastIoUnlockAllByKey;
|
||||
PFAST_IO_ROUTINE FastIoDeviceControl;
|
||||
PFAST_IO_ROUTINE AcquireFileForNtCreateSection;
|
||||
PFAST_IO_ROUTINE ReleaseFileForNtCreateSection;
|
||||
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection;
|
||||
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection;
|
||||
PFAST_IO_ROUTINE FastIoDetachDevice;
|
||||
PFAST_IO_ROUTINE FastIoQueryNetworkOpenInfo;
|
||||
PFAST_IO_ROUTINE AcquireForModWrite;
|
||||
@@ -878,6 +886,15 @@ struct _FAST_IO_DISPATCH_TABLE
|
||||
} FAST_IO_DISPATCH_TABLE, * PFAST_IO_DISPATCH_TABLE;
|
||||
#endif
|
||||
|
||||
#define IO_DRIVER_OBJECT 4L
|
||||
#define DRVO_UNLOAD_INVOKED 0x1L
|
||||
#define DRVO_LEGACY_DRIVER 0x2L
|
||||
#define DRVO_BUILTIN_DRIVER 0x4L
|
||||
#define DRVO_REINIT_REGISTERED 0x8L
|
||||
#define DRVO_INITIALIZED 0x10L
|
||||
#define DRVO_BOOTREINIT_REGISTERED 0x20L
|
||||
#define DRVO_LEGACY_RESOURCES 0x40L
|
||||
|
||||
typedef struct _DRIVER_OBJECT
|
||||
{
|
||||
CSHORT Type;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: rtl.h,v 1.40 2004/12/16 15:10:00 gdalsnes Exp $
|
||||
/* $Id: rtl.h,v 1.41 2004/12/30 18:30:03 ion Exp $
|
||||
*
|
||||
*/
|
||||
#ifndef __DDK_RTL_H
|
||||
@@ -375,6 +375,7 @@ RemoveTailList(
|
||||
|
||||
#define IsLastEntry(ListHead, Entry) ((ListHead)->Blink == Entry)
|
||||
|
||||
#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination), (Source), (Length)))
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
|
||||
Reference in New Issue
Block a user