mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 04:20:46 +00:00
[DDK]
- Fix PIO_CSQ_INSERT_IRP_EX redefinition. [NTDDK] - Remove a couple of duplicate definitions. [XDK] - Move several definitions to their appropriate places. - Add COMPUTE_PAGES_SPANNED, NODE_REQUIREMENT, MM_ANY_NODE_OK, PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR, PsWrapApcWow64Thread, IRP_MN_DEVICE_ENUMERATED, USE_DMA_MACROS, NO_LEGACY_DRIVERS, FO_FLAGS_VALID_ONLY_DURING_CREATE, LOADER_PARTITION_INFORMATION_EX, BOOTDISK_INFORMATION_LITE, IO_CSQ_INSERT_IRP_EX, STATUS_CONTINUE_COMPLETION and several missing Ex*, REG_*, Cm*, Mm*, SL_*, Io*, IO_*, CONNECT_*, WDM_* and WMI* definitions. - Update ExGetCurrentResourceThread and PADAPTER_OBJECT. - Group some related definitions. [WDM] - Update wdm.h to reflect XDK changes. svn path=/branches/header-work/; revision=46290
This commit is contained in:
parent
a896fedfea
commit
e9047cd524
14 changed files with 1740 additions and 157 deletions
|
@ -229,9 +229,11 @@ typedef struct _IO_CSQ_IRP_CONTEXT {
|
||||||
}
|
}
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#ifndef IO_TYPE_CSQ_EX
|
||||||
typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
|
typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
|
||||||
PIRP Irp,
|
PIRP Irp,
|
||||||
PVOID InsertContext);
|
PVOID InsertContext);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CANCEL-SAFE QUEUE DDIs
|
* CANCEL-SAFE QUEUE DDIs
|
||||||
|
|
|
@ -2587,11 +2587,6 @@ typedef enum _MM_ROTATE_DIRECTION {
|
||||||
MmMaximumRotateDirection
|
MmMaximumRotateDirection
|
||||||
} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
|
} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
|
||||||
typedef ULONG NODE_REQUIREMENT;
|
|
||||||
#define MM_ANY_NODE_OK 0x80000000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Memory Manager Functions */
|
/* Memory Manager Functions */
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -19,5 +19,52 @@ CmUnRegisterCallback(
|
||||||
IN LARGE_INTEGER Cookie);
|
IN LARGE_INTEGER Cookie);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
CmRegisterCallbackEx(
|
||||||
|
PEX_CALLBACK_FUNCTION Function,
|
||||||
|
PCUNICODE_STRING Altitude,
|
||||||
|
PVOID Driver,
|
||||||
|
PVOID Context,
|
||||||
|
PLARGE_INTEGER Cookie,
|
||||||
|
PVOID Reserved);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
CmGetCallbackVersion(
|
||||||
|
OUT PULONG Major OPTIONAL,
|
||||||
|
OUT PULONG Minor OPTIONAL);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
CmSetCallbackObjectContext(
|
||||||
|
IN OUT PVOID Object,
|
||||||
|
IN PLARGE_INTEGER Cookie,
|
||||||
|
IN PVOID NewContext,
|
||||||
|
OUT PVOID *OldContext OPTIONAL);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
CmCallbackGetKeyObjectID(
|
||||||
|
IN PLARGE_INTEGER Cookie,
|
||||||
|
IN PVOID Object,
|
||||||
|
OUT PULONG_PTR ObjectID OPTIONAL,
|
||||||
|
OUT PCUNICODE_STRING *ObjectName OPTIONAL);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
CmGetBoundTransaction(
|
||||||
|
IN PLARGE_INTEGER Cookie,
|
||||||
|
IN PVOID Object);
|
||||||
|
|
||||||
|
#endif // NTDDI_VERSION >= NTDDI_VISTA
|
||||||
|
|
||||||
$endif
|
$endif
|
||||||
|
|
||||||
|
|
|
@ -681,10 +681,11 @@ typedef enum _REG_NOTIFY_CLASS {
|
||||||
} REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS;
|
} REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PEX_CALLBACK_FUNCTION)(
|
(NTAPI EX_CALLBACK_FUNCTION)(
|
||||||
IN PVOID CallbackContext,
|
IN PVOID CallbackContext,
|
||||||
IN PVOID Argument1,
|
IN PVOID Argument1,
|
||||||
IN PVOID Argument2);
|
IN PVOID Argument2);
|
||||||
|
typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
|
||||||
|
|
||||||
typedef struct _REG_DELETE_KEY_INFORMATION {
|
typedef struct _REG_DELETE_KEY_INFORMATION {
|
||||||
PVOID Object;
|
PVOID Object;
|
||||||
|
@ -786,6 +787,54 @@ typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION {
|
||||||
PVOID Reserved;
|
PVOID Reserved;
|
||||||
} REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
|
} REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_RENAME_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PUNICODE_STRING NewName;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_CREATE_KEY_INFORMATION {
|
||||||
|
PUNICODE_STRING CompleteName;
|
||||||
|
PVOID RootObject;
|
||||||
|
PVOID ObjectType;
|
||||||
|
ULONG CreateOptions;
|
||||||
|
PUNICODE_STRING Class;
|
||||||
|
PVOID SecurityDescriptor;
|
||||||
|
PVOID SecurityQualityOfService;
|
||||||
|
ACCESS_MASK DesiredAccess;
|
||||||
|
ACCESS_MASK GrantedAccess;
|
||||||
|
PULONG Disposition;
|
||||||
|
PVOID *ResultObject;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID RootObjectContext;
|
||||||
|
PVOID Transaction;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_CREATE_KEY_INFORMATION, REG_OPEN_KEY_INFORMATION,*PREG_CREATE_KEY_INFORMATION, *PREG_OPEN_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
|
||||||
|
PUNICODE_STRING CompleteName;
|
||||||
|
PVOID RootObject;
|
||||||
|
PVOID ObjectType;
|
||||||
|
ULONG Options;
|
||||||
|
PUNICODE_STRING Class;
|
||||||
|
PVOID SecurityDescriptor;
|
||||||
|
PVOID SecurityQualityOfService;
|
||||||
|
ACCESS_MASK DesiredAccess;
|
||||||
|
ACCESS_MASK GrantedAccess;
|
||||||
|
PULONG Disposition;
|
||||||
|
PVOID *ResultObject;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID RootObjectContext;
|
||||||
|
PVOID Transaction;
|
||||||
|
ULONG_PTR Version;
|
||||||
|
PUNICODE_STRING RemainingName;
|
||||||
|
ULONG Wow64Flags;
|
||||||
|
ULONG Attributes;
|
||||||
|
KPROCESSOR_MODE CheckAccessMode;
|
||||||
|
} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1,*PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
|
||||||
|
|
||||||
typedef struct _REG_PRE_CREATE_KEY_INFORMATION {
|
typedef struct _REG_PRE_CREATE_KEY_INFORMATION {
|
||||||
PUNICODE_STRING CompleteName;
|
PUNICODE_STRING CompleteName;
|
||||||
} REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;;
|
} REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;;
|
||||||
|
@ -813,6 +862,84 @@ typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION {
|
||||||
PVOID Reserved;
|
PVOID Reserved;
|
||||||
} REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
|
} REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
|
||||||
|
typedef struct _REG_LOAD_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PUNICODE_STRING KeyName;
|
||||||
|
PUNICODE_STRING SourceFile;
|
||||||
|
ULONG Flags;
|
||||||
|
PVOID TrustClassObject;
|
||||||
|
PVOID UserEvent;
|
||||||
|
ACCESS_MASK DesiredAccess;
|
||||||
|
PHANDLE RootHandle;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_LOAD_KEY_INFORMATION, *PREG_LOAD_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_UNLOAD_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PVOID UserEvent;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_UNLOAD_KEY_INFORMATION, *PREG_UNLOAD_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION, *PREG_CALLBACK_CONTEXT_CLEANUP_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_QUERY_KEY_SECURITY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PSECURITY_INFORMATION SecurityInformation;
|
||||||
|
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||||
|
PULONG Length;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_QUERY_KEY_SECURITY_INFORMATION, *PREG_QUERY_KEY_SECURITY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_SET_KEY_SECURITY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PSECURITY_INFORMATION SecurityInformation;
|
||||||
|
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_SET_KEY_SECURITY_INFORMATION, *PREG_SET_KEY_SECURITY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_RESTORE_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
HANDLE FileHandle;
|
||||||
|
ULONG Flags;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_RESTORE_KEY_INFORMATION, *PREG_RESTORE_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_SAVE_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
HANDLE FileHandle;
|
||||||
|
ULONG Format;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_SAVE_KEY_INFORMATION, *PREG_SAVE_KEY_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _REG_REPLACE_KEY_INFORMATION {
|
||||||
|
PVOID Object;
|
||||||
|
PUNICODE_STRING OldFileName;
|
||||||
|
PUNICODE_STRING NewFileName;
|
||||||
|
PVOID CallContext;
|
||||||
|
PVOID ObjectContext;
|
||||||
|
PVOID Reserved;
|
||||||
|
} REG_REPLACE_KEY_INFORMATION, *PREG_REPLACE_KEY_INFORMATION;
|
||||||
|
|
||||||
|
#endif /* NTDDI_VERSION >= NTDDI_VISTA */
|
||||||
|
|
||||||
#define SERVICE_KERNEL_DRIVER 0x00000001
|
#define SERVICE_KERNEL_DRIVER 0x00000001
|
||||||
#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
|
#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
|
||||||
#define SERVICE_ADAPTER 0x00000004
|
#define SERVICE_ADAPTER 0x00000004
|
||||||
|
|
|
@ -200,7 +200,7 @@ ExFreeToPagedLookasideList(
|
||||||
* ExGetCurrentResourceThread(
|
* ExGetCurrentResourceThread(
|
||||||
* VOID);
|
* VOID);
|
||||||
*/
|
*/
|
||||||
#define ExGetCurrentResourceThread() ((ERESOURCE_THREAD)PsGetCurrentThread())
|
#define ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread())
|
||||||
|
|
||||||
#define ExReleaseResource(R) (ExReleaseResourceLite(R))
|
#define ExReleaseResource(R) (ExReleaseResourceLite(R))
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@ NTKERNELAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ExAcquireResourceExclusiveLite(
|
ExAcquireResourceExclusiveLite(
|
||||||
IN PERESOURCE Resource,
|
IN OUT PERESOURCE Resource,
|
||||||
IN BOOLEAN Wait);
|
IN BOOLEAN Wait);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
|
@ -261,14 +261,14 @@ NTKERNELAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ExAcquireSharedStarveExclusive(
|
ExAcquireSharedStarveExclusive(
|
||||||
IN PERESOURCE Resource,
|
IN OUT PERESOURCE Resource,
|
||||||
IN BOOLEAN Wait);
|
IN BOOLEAN Wait);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ExAcquireSharedWaitForExclusive(
|
ExAcquireSharedWaitForExclusive(
|
||||||
IN PERESOURCE Resource,
|
IN OUT PERESOURCE Resource,
|
||||||
IN BOOLEAN Wait);
|
IN BOOLEAN Wait);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
|
@ -322,7 +322,7 @@ NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ExConvertExclusiveToSharedLite(
|
ExConvertExclusiveToSharedLite(
|
||||||
IN PERESOURCE Resource);
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
@ -349,7 +349,7 @@ NTKERNELAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ExDeleteResourceLite(
|
ExDeleteResourceLite(
|
||||||
IN PERESOURCE Resource);
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
|
@ -536,8 +536,8 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ExNotifyCallback(
|
ExNotifyCallback(
|
||||||
IN PCALLBACK_OBJECT CallbackObject,
|
IN PCALLBACK_OBJECT CallbackObject,
|
||||||
IN PVOID Argument1,
|
IN PVOID Argument1 OPTIONAL,
|
||||||
IN PVOID Argument2);
|
IN PVOID Argument2 OPTIONAL);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
|
@ -559,7 +559,7 @@ NTAPI
|
||||||
ExRegisterCallback(
|
ExRegisterCallback(
|
||||||
IN PCALLBACK_OBJECT CallbackObject,
|
IN PCALLBACK_OBJECT CallbackObject,
|
||||||
IN PCALLBACK_FUNCTION CallbackFunction,
|
IN PCALLBACK_FUNCTION CallbackFunction,
|
||||||
IN PVOID CallbackContext);
|
IN PVOID CallbackContext OPTIONAL);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
@ -571,20 +571,20 @@ NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ExReleaseResourceForThreadLite(
|
ExReleaseResourceForThreadLite(
|
||||||
IN PERESOURCE Resource,
|
IN OUT PERESOURCE Resource,
|
||||||
IN ERESOURCE_THREAD ResourceThreadId);
|
IN ERESOURCE_THREAD ResourceThreadId);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
ExReleaseResourceLite(
|
ExReleaseResourceLite(
|
||||||
IN PERESOURCE Resource);
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ExSetResourceOwnerPointer(
|
ExSetResourceOwnerPointer(
|
||||||
IN PERESOURCE Resource,
|
IN OUT PERESOURCE Resource,
|
||||||
IN PVOID OwnerPointer);
|
IN PVOID OwnerPointer);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
|
@ -605,7 +605,7 @@ NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ExUnregisterCallback(
|
ExUnregisterCallback(
|
||||||
IN PVOID CbRegistration);
|
IN OUT PVOID CbRegistration);
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
ExReInitializeRundownProtection(
|
ExReInitializeRundownProtection(
|
||||||
OUT PEX_RUNDOWN_REF RunRef);
|
IN OUT PEX_RUNDOWN_REF RunRef);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
|
@ -687,6 +687,87 @@ SIZE_T
|
||||||
NTAPI
|
NTAPI
|
||||||
ExSizeOfRundownProtectionCacheAware(VOID);
|
ExSizeOfRundownProtectionCacheAware(VOID);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
ExEnterCriticalRegionAndAcquireResourceShared(
|
||||||
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
ExEnterCriticalRegionAndAcquireResourceExclusive(
|
||||||
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(
|
||||||
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExReleaseResourceAndLeaveCriticalRegion(
|
||||||
|
IN OUT PERESOURCE Resource);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
ExInitializeRundownProtectionCacheAware(
|
||||||
|
OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
|
||||||
|
IN SIZE_T RunRefSize);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
ExFreeCacheAwareRundownProtection(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
BOOLEAN
|
||||||
|
FASTCALL
|
||||||
|
ExAcquireRundownProtectionCacheAware(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExReleaseRundownProtectionCacheAware(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
BOOLEAN
|
||||||
|
FASTCALL
|
||||||
|
ExAcquireRundownProtectionCacheAwareEx(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
|
||||||
|
IN ULONG Count);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExReleaseRundownProtectionCacheAwareEx(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef,
|
||||||
|
IN ULONG Count);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExWaitForRundownProtectionReleaseCacheAware(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExReInitializeRundownProtectionCacheAware(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
ExRundownCompletedCacheAware(
|
||||||
|
IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
@ -753,6 +834,20 @@ ExFreeToLookasideListEx(
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
ExSetResourceOwnerPointerEx(
|
||||||
|
IN OUT PERESOURCE Resource,
|
||||||
|
IN PVOID OwnerPointer,
|
||||||
|
IN ULONG Flags);
|
||||||
|
|
||||||
|
#define FLAG_OWNER_POINTER_IS_THREAD 0x1
|
||||||
|
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||||
|
|
||||||
static __inline PVOID
|
static __inline PVOID
|
||||||
ExAllocateFromNPagedLookasideList(
|
ExAllocateFromNPagedLookasideList(
|
||||||
IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
|
IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
|
||||||
|
|
|
@ -78,10 +78,11 @@ typedef VOID
|
||||||
IN OUT PLOOKASIDE_LIST_EX Lookaside);
|
IN OUT PLOOKASIDE_LIST_EX Lookaside);
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PCALLBACK_FUNCTION)(
|
(NTAPI CALLBACK_FUNCTION)(
|
||||||
IN PVOID CallbackContext,
|
IN PVOID CallbackContext OPTIONAL,
|
||||||
IN PVOID Argument1,
|
IN PVOID Argument1 OPTIONAL,
|
||||||
IN PVOID Argument2);
|
IN PVOID Argument2 OPTIONAL);
|
||||||
|
typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
|
||||||
|
|
||||||
#define GENERAL_LOOKASIDE_LAYOUT \
|
#define GENERAL_LOOKASIDE_LAYOUT \
|
||||||
union { \
|
union { \
|
||||||
|
|
|
@ -1174,7 +1174,7 @@ NTKERNELAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
IoWMIWriteEvent(
|
IoWMIWriteEvent(
|
||||||
IN PVOID WnodeEventItem);
|
IN OUT PVOID WnodeEventItem);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
VOID
|
VOID
|
||||||
|
@ -1182,6 +1182,23 @@ NTAPI
|
||||||
IoWriteErrorLogEntry(
|
IoWriteErrorLogEntry(
|
||||||
IN PVOID ElEntry);
|
IN PVOID ElEntry);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PIRP
|
||||||
|
NTAPI
|
||||||
|
IoGetTopLevelIrp(VOID);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoRegisterLastChanceShutdownNotification(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoSetTopLevelIrp(
|
||||||
|
IN PIRP Irp OPTIONAL);
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||||
|
@ -1218,7 +1235,7 @@ PIRP
|
||||||
NTAPI
|
NTAPI
|
||||||
IoCsqRemoveNextIrp(
|
IoCsqRemoveNextIrp(
|
||||||
IN PIO_CSQ Csq,
|
IN PIO_CSQ Csq,
|
||||||
IN PVOID PeekContext);
|
IN PVOID PeekContext OPTIONAL);
|
||||||
|
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
@ -1346,6 +1363,178 @@ IoWMISetSingleItem(
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoValidateDeviceIoControlAccess(
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN ULONG RequiredAccess);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoCsqInitializeEx(
|
||||||
|
IN PIO_CSQ Csq,
|
||||||
|
IN PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
|
||||||
|
IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
|
||||||
|
IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
|
||||||
|
IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
|
||||||
|
IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
|
||||||
|
IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoCsqInsertIrpEx(
|
||||||
|
IN PIO_CSQ Csq,
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL,
|
||||||
|
IN PVOID InsertContext OPTIONAL);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoGetBootDiskInformationLite(
|
||||||
|
OUT PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoCheckShareAccessEx(
|
||||||
|
IN ACCESS_MASK DesiredAccess,
|
||||||
|
IN ULONG DesiredShareAccess,
|
||||||
|
IN OUT PFILE_OBJECT FileObject,
|
||||||
|
IN OUT PSHARE_ACCESS ShareAccess,
|
||||||
|
IN BOOLEAN Update,
|
||||||
|
IN PBOOLEAN WritePermission);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoConnectInterruptEx(
|
||||||
|
IN OUT PIO_CONNECT_INTERRUPT_PARAMETERS Parameters);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoDisconnectInterruptEx(
|
||||||
|
IN PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters);
|
||||||
|
|
||||||
|
LOGICAL
|
||||||
|
NTAPI
|
||||||
|
IoWithinStackLimits(
|
||||||
|
IN ULONG_PTR RegionStart,
|
||||||
|
IN SIZE_T RegionSize);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoSetShareAccessEx(
|
||||||
|
IN ACCESS_MASK DesiredAccess,
|
||||||
|
IN ULONG DesiredShareAccess,
|
||||||
|
IN OUT PFILE_OBJECT FileObject,
|
||||||
|
OUT PSHARE_ACCESS ShareAccess,
|
||||||
|
IN PBOOLEAN WritePermission);
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
IoSizeofWorkItem(VOID);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoInitializeWorkItem(
|
||||||
|
IN PVOID IoObject,
|
||||||
|
IN PIO_WORKITEM IoWorkItem);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoUninitializeWorkItem(
|
||||||
|
IN PIO_WORKITEM IoWorkItem);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoQueueWorkItemEx(
|
||||||
|
IN PIO_WORKITEM IoWorkItem,
|
||||||
|
IN PIO_WORKITEM_ROUTINE_EX WorkerRoutine,
|
||||||
|
IN WORK_QUEUE_TYPE QueueType,
|
||||||
|
IN PVOID Context OPTIONAL);
|
||||||
|
|
||||||
|
IO_PRIORITY_HINT
|
||||||
|
NTAPI
|
||||||
|
IoGetIoPriorityHint(
|
||||||
|
IN PIRP Irp);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoSetIoPriorityHint(
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN IO_PRIORITY_HINT PriorityHint);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoAllocateSfioStreamIdentifier(
|
||||||
|
IN PFILE_OBJECT FileObject,
|
||||||
|
IN ULONG Length,
|
||||||
|
IN PVOID Signature,
|
||||||
|
OUT PVOID *StreamIdentifier);
|
||||||
|
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
IoGetSfioStreamIdentifier(
|
||||||
|
IN PFILE_OBJECT FileObject,
|
||||||
|
IN PVOID Signature);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoFreeSfioStreamIdentifier(
|
||||||
|
IN PFILE_OBJECT FileObject,
|
||||||
|
IN PVOID Signature);
|
||||||
|
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||||
|
|
||||||
|
#define IoCallDriverStackSafeDefault(a, b) IoCallDriver(a, b)
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoGetAffinityInterrupt(
|
||||||
|
IN PKINTERRUPT InterruptObject,
|
||||||
|
OUT PGROUP_AFFINITY GroupAffinity);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoGetContainerInformation(
|
||||||
|
IN IO_CONTAINER_INFORMATION_CLASS InformationClass,
|
||||||
|
IN PVOID ContainerObject OPTIONAL,
|
||||||
|
IN OUT PVOID Buffer OPTIONAL,
|
||||||
|
IN ULONG BufferLength);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IoRegisterContainerNotification(
|
||||||
|
IN IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
|
||||||
|
IN PIO_CONTAINER_NOTIFICATION_FUNCTION CallbackFunction,
|
||||||
|
IN PVOID NotificationInformation OPTIONAL,
|
||||||
|
IN ULONG NotificationInformationLength,
|
||||||
|
OUT PVOID CallbackRegistration);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
IoUnregisterContainerNotification(
|
||||||
|
IN PVOID CallbackRegistration);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN64)
|
#if defined(_WIN64)
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
ULONG
|
ULONG
|
||||||
|
@ -1542,7 +1731,7 @@ IoInitializeDpcRequest(
|
||||||
FORCEINLINE
|
FORCEINLINE
|
||||||
VOID
|
VOID
|
||||||
IoCopyCurrentIrpStackLocationToNext(
|
IoCopyCurrentIrpStackLocationToNext(
|
||||||
IN PIRP Irp)
|
IN OUT PIRP Irp)
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION irpSp;
|
PIO_STACK_LOCATION irpSp;
|
||||||
PIO_STACK_LOCATION nextIrpSp;
|
PIO_STACK_LOCATION nextIrpSp;
|
||||||
|
@ -1571,3 +1760,16 @@ IoGetRemainingStackSize(VOID)
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||||
|
VOID
|
||||||
|
FORCEINLINE
|
||||||
|
IoInitializeThreadedDpcRequest(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIO_DPC_ROUTINE DpcRoutine)
|
||||||
|
{
|
||||||
|
KeInitializeThreadedDpc(&DeviceObject->Dpc,
|
||||||
|
(PKDEFERRED_ROUTINE) DpcRoutine,
|
||||||
|
DeviceObject );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,29 @@
|
||||||
* I/O Manager Types *
|
* I/O Manager Types *
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define WDM_MAJORVERSION 0x06
|
||||||
|
#define WDM_MINORVERSION 0x00
|
||||||
|
|
||||||
|
#if defined(_WIN64)
|
||||||
|
|
||||||
|
#ifndef USE_DMA_MACROS
|
||||||
|
#define USE_DMA_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_LEGACY_DRIVERS
|
||||||
|
#define NO_LEGACY_DRIVERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* defined(_WIN64) */
|
||||||
|
|
||||||
|
#define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS
|
||||||
|
|
||||||
|
#define CONNECT_FULLY_SPECIFIED 0x1
|
||||||
|
#define CONNECT_LINE_BASED 0x2
|
||||||
|
#define CONNECT_MESSAGE_BASED 0x3
|
||||||
|
#define CONNECT_FULLY_SPECIFIED_GROUP 0x4
|
||||||
|
#define CONNECT_CURRENT_VERSION 0x4
|
||||||
|
|
||||||
/* PCI_COMMON_CONFIG.Command */
|
/* PCI_COMMON_CONFIG.Command */
|
||||||
#define PCI_ENABLE_IO_SPACE 0x0001
|
#define PCI_ENABLE_IO_SPACE 0x0001
|
||||||
#define PCI_ENABLE_MEMORY_SPACE 0x0002
|
#define PCI_ENABLE_MEMORY_SPACE 0x0002
|
||||||
|
@ -344,11 +367,12 @@ typedef enum _IO_ALLOCATION_ACTION {
|
||||||
} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
|
} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
|
||||||
|
|
||||||
typedef IO_ALLOCATION_ACTION
|
typedef IO_ALLOCATION_ACTION
|
||||||
(NTAPI *PDRIVER_CONTROL)(
|
(NTAPI DRIVER_CONTROL)(
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||||
IN struct _IRP *Irp,
|
IN struct _IRP *Irp,
|
||||||
IN PVOID MapRegisterBase,
|
IN PVOID MapRegisterBase,
|
||||||
IN PVOID Context);
|
IN PVOID Context);
|
||||||
|
typedef DRIVER_CONTROL *PDRIVER_CONTROL;
|
||||||
|
|
||||||
typedef struct _WAIT_CONTEXT_BLOCK {
|
typedef struct _WAIT_CONTEXT_BLOCK {
|
||||||
KDEVICE_QUEUE_ENTRY WaitQueueEntry;
|
KDEVICE_QUEUE_ENTRY WaitQueueEntry;
|
||||||
|
@ -391,6 +415,153 @@ typedef struct _DEVICE_OBJECT {
|
||||||
PVOID Reserved;
|
PVOID Reserved;
|
||||||
} DEVICE_OBJECT, *PDEVICE_OBJECT;
|
} DEVICE_OBJECT, *PDEVICE_OBJECT;
|
||||||
|
|
||||||
|
typedef enum _IO_SESSION_STATE {
|
||||||
|
IoSessionStateCreated = 1,
|
||||||
|
IoSessionStateInitialized,
|
||||||
|
IoSessionStateConnected,
|
||||||
|
IoSessionStateDisconnected,
|
||||||
|
IoSessionStateDisconnectedLoggedOn,
|
||||||
|
IoSessionStateLoggedOn,
|
||||||
|
IoSessionStateLoggedOff,
|
||||||
|
IoSessionStateTerminated,
|
||||||
|
IoSessionStateMax
|
||||||
|
} IO_SESSION_STATE, *PIO_SESSION_STATE;
|
||||||
|
|
||||||
|
typedef enum _IO_COMPLETION_ROUTINE_RESULT {
|
||||||
|
ContinueCompletion = STATUS_CONTINUE_COMPLETION,
|
||||||
|
StopCompletion = STATUS_MORE_PROCESSING_REQUIRED
|
||||||
|
} IO_COMPLETION_ROUTINE_RESULT, *PIO_COMPLETION_ROUTINE_RESULT;
|
||||||
|
|
||||||
|
typedef struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY {
|
||||||
|
PHYSICAL_ADDRESS MessageAddress;
|
||||||
|
KAFFINITY TargetProcessorSet;
|
||||||
|
PKINTERRUPT InterruptObject;
|
||||||
|
ULONG MessageData;
|
||||||
|
ULONG Vector;
|
||||||
|
KIRQL Irql;
|
||||||
|
KINTERRUPT_MODE Mode;
|
||||||
|
KINTERRUPT_POLARITY Polarity;
|
||||||
|
} IO_INTERRUPT_MESSAGE_INFO_ENTRY, *PIO_INTERRUPT_MESSAGE_INFO_ENTRY;
|
||||||
|
|
||||||
|
typedef struct _IO_INTERRUPT_MESSAGE_INFO {
|
||||||
|
KIRQL UnifiedIrql;
|
||||||
|
ULONG MessageCount;
|
||||||
|
IO_INTERRUPT_MESSAGE_INFO_ENTRY MessageInfo[1];
|
||||||
|
} IO_INTERRUPT_MESSAGE_INFO, *PIO_INTERRUPT_MESSAGE_INFO;
|
||||||
|
|
||||||
|
typedef struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS {
|
||||||
|
IN PDEVICE_OBJECT PhysicalDeviceObject;
|
||||||
|
OUT PKINTERRUPT *InterruptObject;
|
||||||
|
IN PKSERVICE_ROUTINE ServiceRoutine;
|
||||||
|
IN PVOID ServiceContext;
|
||||||
|
IN PKSPIN_LOCK SpinLock OPTIONAL;
|
||||||
|
IN KIRQL SynchronizeIrql;
|
||||||
|
IN BOOLEAN FloatingSave;
|
||||||
|
IN BOOLEAN ShareVector;
|
||||||
|
IN ULONG Vector;
|
||||||
|
IN KIRQL Irql;
|
||||||
|
IN KINTERRUPT_MODE InterruptMode;
|
||||||
|
IN KAFFINITY ProcessorEnableMask;
|
||||||
|
IN USHORT Group;
|
||||||
|
} IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS, *PIO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS {
|
||||||
|
IN PDEVICE_OBJECT PhysicalDeviceObject;
|
||||||
|
OUT PKINTERRUPT *InterruptObject;
|
||||||
|
IN PKSERVICE_ROUTINE ServiceRoutine;
|
||||||
|
IN PVOID ServiceContext;
|
||||||
|
IN PKSPIN_LOCK SpinLock OPTIONAL;
|
||||||
|
IN KIRQL SynchronizeIrql OPTIONAL;
|
||||||
|
IN BOOLEAN FloatingSave;
|
||||||
|
} IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {
|
||||||
|
IN PDEVICE_OBJECT PhysicalDeviceObject;
|
||||||
|
union {
|
||||||
|
OUT PVOID *Generic;
|
||||||
|
OUT PIO_INTERRUPT_MESSAGE_INFO *InterruptMessageTable;
|
||||||
|
OUT PKINTERRUPT *InterruptObject;
|
||||||
|
} ConnectionContext;
|
||||||
|
IN PKMESSAGE_SERVICE_ROUTINE MessageServiceRoutine;
|
||||||
|
IN PVOID ServiceContext;
|
||||||
|
IN PKSPIN_LOCK SpinLock OPTIONAL;
|
||||||
|
IN KIRQL SynchronizeIrql OPTIONAL;
|
||||||
|
IN BOOLEAN FloatingSave;
|
||||||
|
IN PKSERVICE_ROUTINE FallBackServiceRoutine OPTIONAL;
|
||||||
|
} IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct _IO_CONNECT_INTERRUPT_PARAMETERS {
|
||||||
|
IN OUT ULONG Version;
|
||||||
|
union {
|
||||||
|
IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS FullySpecified;
|
||||||
|
IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS LineBased;
|
||||||
|
IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS MessageBased;
|
||||||
|
};
|
||||||
|
} IO_CONNECT_INTERRUPT_PARAMETERS, *PIO_CONNECT_INTERRUPT_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
|
||||||
|
IN ULONG Version;
|
||||||
|
union {
|
||||||
|
IN PVOID Generic;
|
||||||
|
IN PKINTERRUPT InterruptObject;
|
||||||
|
IN PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
|
||||||
|
} ConnectionContext;
|
||||||
|
} IO_DISCONNECT_INTERRUPT_PARAMETERS, *PIO_DISCONNECT_INTERRUPT_PARAMETERS;
|
||||||
|
|
||||||
|
typedef enum _IO_ACCESS_TYPE {
|
||||||
|
ReadAccess,
|
||||||
|
WriteAccess,
|
||||||
|
ModifyAccess
|
||||||
|
} IO_ACCESS_TYPE;
|
||||||
|
|
||||||
|
typedef enum _IO_ACCESS_MODE {
|
||||||
|
SequentialAccess,
|
||||||
|
RandomAccess
|
||||||
|
} IO_ACCESS_MODE;
|
||||||
|
|
||||||
|
typedef enum _IO_CONTAINER_NOTIFICATION_CLASS {
|
||||||
|
IoSessionStateNotification,
|
||||||
|
IoMaxContainerNotificationClass
|
||||||
|
} IO_CONTAINER_NOTIFICATION_CLASS;
|
||||||
|
|
||||||
|
typedef struct _IO_SESSION_STATE_NOTIFICATION {
|
||||||
|
ULONG Size;
|
||||||
|
ULONG Flags;
|
||||||
|
PVOID IoObject;
|
||||||
|
ULONG EventMask;
|
||||||
|
PVOID Context;
|
||||||
|
} IO_SESSION_STATE_NOTIFICATION, *PIO_SESSION_STATE_NOTIFICATION;
|
||||||
|
|
||||||
|
typedef enum _IO_CONTAINER_INFORMATION_CLASS {
|
||||||
|
IoSessionStateInformation,
|
||||||
|
IoMaxContainerInformationClass
|
||||||
|
} IO_CONTAINER_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef struct _IO_SESSION_STATE_INFORMATION {
|
||||||
|
ULONG SessionId;
|
||||||
|
IO_SESSION_STATE SessionState;
|
||||||
|
BOOLEAN LocalSession;
|
||||||
|
} IO_SESSION_STATE_INFORMATION, *PIO_SESSION_STATE_INFORMATION;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
|
||||||
|
typedef NTSTATUS
|
||||||
|
(NTAPI *PIO_CONTAINER_NOTIFICATION_FUNCTION)(
|
||||||
|
VOID);
|
||||||
|
|
||||||
|
typedef NTSTATUS
|
||||||
|
(NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
|
||||||
|
IN PVOID SessionObject,
|
||||||
|
IN PVOID IoObject,
|
||||||
|
IN ULONG Event,
|
||||||
|
IN PVOID Context,
|
||||||
|
IN PVOID NotificationPayload,
|
||||||
|
IN ULONG PayloadLength);
|
||||||
|
|
||||||
|
typedef IO_SESSION_NOTIFICATION_FUNCTION *PIO_SESSION_NOTIFICATION_FUNCTION;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK;
|
typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK;
|
||||||
|
|
||||||
typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
|
typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
|
||||||
|
@ -428,6 +599,13 @@ typedef VOID
|
||||||
IN PVOID Context);
|
IN PVOID Context);
|
||||||
typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
|
typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
|
||||||
|
|
||||||
|
typedef VOID
|
||||||
|
(NTAPI IO_WORKITEM_ROUTINE_EX)(
|
||||||
|
IN PVOID IoObject,
|
||||||
|
IN PVOID Context OPTIONAL,
|
||||||
|
IN PIO_WORKITEM IoWorkItem);
|
||||||
|
typedef IO_WORKITEM_ROUTINE_EX *PIO_WORKITEM_ROUTINE_EX;
|
||||||
|
|
||||||
typedef struct _SHARE_ACCESS {
|
typedef struct _SHARE_ACCESS {
|
||||||
ULONG OpenCount;
|
ULONG OpenCount;
|
||||||
ULONG Readers;
|
ULONG Readers;
|
||||||
|
@ -590,18 +768,6 @@ typedef enum _IO_SESSION_EVENT {
|
||||||
IoSessionEventMax
|
IoSessionEventMax
|
||||||
} IO_SESSION_EVENT, *PIO_SESSION_EVENT;
|
} IO_SESSION_EVENT, *PIO_SESSION_EVENT;
|
||||||
|
|
||||||
typedef enum _IO_SESSION_STATE {
|
|
||||||
IoSessionStateCreated = 1,
|
|
||||||
IoSessionStateInitialized,
|
|
||||||
IoSessionStateConnected,
|
|
||||||
IoSessionStateDisconnected,
|
|
||||||
IoSessionStateDisconnectedLoggedOn,
|
|
||||||
IoSessionStateLoggedOn,
|
|
||||||
IoSessionStateLoggedOff,
|
|
||||||
IoSessionStateTerminated,
|
|
||||||
IoSessionStateMax
|
|
||||||
} IO_SESSION_STATE, *PIO_SESSION_STATE;
|
|
||||||
|
|
||||||
#define IO_SESSION_STATE_ALL_EVENTS 0xffffffff
|
#define IO_SESSION_STATE_ALL_EVENTS 0xffffffff
|
||||||
#define IO_SESSION_STATE_CREATION_EVENT 0x00000001
|
#define IO_SESSION_STATE_CREATION_EVENT 0x00000001
|
||||||
#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
|
#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
|
||||||
|
@ -619,11 +785,6 @@ typedef struct _IO_SESSION_CONNECT_INFO {
|
||||||
BOOLEAN LocalSession;
|
BOOLEAN LocalSession;
|
||||||
} IO_SESSION_CONNECT_INFO, *PIO_SESSION_CONNECT_INFO;
|
} IO_SESSION_CONNECT_INFO, *PIO_SESSION_CONNECT_INFO;
|
||||||
|
|
||||||
typedef VOID
|
|
||||||
(NTAPI *WMI_NOTIFICATION_CALLBACK)(
|
|
||||||
PVOID Wnode,
|
|
||||||
PVOID Context);
|
|
||||||
|
|
||||||
#define EVENT_INCREMENT 1
|
#define EVENT_INCREMENT 1
|
||||||
#define IO_NO_INCREMENT 0
|
#define IO_NO_INCREMENT 0
|
||||||
#define IO_CD_ROM_INCREMENT 1
|
#define IO_CD_ROM_INCREMENT 1
|
||||||
|
@ -659,6 +820,38 @@ typedef struct _BOOTDISK_INFORMATION_EX {
|
||||||
BOOLEAN SystemDeviceIsGpt;
|
BOOLEAN SystemDeviceIsGpt;
|
||||||
} BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;
|
} BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
|
||||||
|
typedef struct _LOADER_PARTITION_INFORMATION_EX {
|
||||||
|
ULONG PartitionStyle;
|
||||||
|
ULONG PartitionNumber;
|
||||||
|
union {
|
||||||
|
ULONG Signature;
|
||||||
|
GUID DeviceId;
|
||||||
|
};
|
||||||
|
ULONG Flags;
|
||||||
|
} LOADER_PARTITION_INFORMATION_EX, *PLOADER_PARTITION_INFORMATION_EX;
|
||||||
|
|
||||||
|
typedef struct _BOOTDISK_INFORMATION_LITE {
|
||||||
|
ULONG NumberEntries;
|
||||||
|
LOADER_PARTITION_INFORMATION_EX Entries[1];
|
||||||
|
} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
typedef struct _BOOTDISK_INFORMATION_LITE {
|
||||||
|
ULONG BootDeviceSignature;
|
||||||
|
ULONG SystemDeviceSignature;
|
||||||
|
GUID BootDeviceGuid;
|
||||||
|
GUID SystemDeviceGuid;
|
||||||
|
BOOLEAN BootDeviceIsGpt;
|
||||||
|
BOOLEAN SystemDeviceIsGpt;
|
||||||
|
} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||||
|
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||||
|
|
||||||
#include <pshpack1.h>
|
#include <pshpack1.h>
|
||||||
|
|
||||||
typedef struct _EISA_MEMORY_TYPE {
|
typedef struct _EISA_MEMORY_TYPE {
|
||||||
|
@ -1192,7 +1385,7 @@ typedef struct _FILE_SFIO_VOLUME_INFORMATION {
|
||||||
#define FM_LOCK_WAITER_INC (0x4)
|
#define FM_LOCK_WAITER_INC (0x4)
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
|
(NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1201,9 +1394,10 @@ typedef BOOLEAN
|
||||||
IN BOOLEAN CheckForReadOperation,
|
IN BOOLEAN CheckForReadOperation,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_CHECK_IF_POSSIBLE *PFAST_IO_CHECK_IF_POSSIBLE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_READ)(
|
(NTAPI FAST_IO_READ)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1212,9 +1406,10 @@ typedef BOOLEAN
|
||||||
OUT PVOID Buffer,
|
OUT PVOID Buffer,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_READ *PFAST_IO_READ;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_WRITE)(
|
(NTAPI FAST_IO_WRITE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1223,25 +1418,28 @@ typedef BOOLEAN
|
||||||
IN PVOID Buffer,
|
IN PVOID Buffer,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_WRITE *PFAST_IO_WRITE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_QUERY_BASIC_INFO)(
|
(NTAPI FAST_IO_QUERY_BASIC_INFO)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN BOOLEAN Wait,
|
IN BOOLEAN Wait,
|
||||||
OUT PFILE_BASIC_INFORMATION Buffer,
|
OUT PFILE_BASIC_INFORMATION Buffer,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_QUERY_BASIC_INFO *PFAST_IO_QUERY_BASIC_INFO;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_QUERY_STANDARD_INFO)(
|
(NTAPI FAST_IO_QUERY_STANDARD_INFO)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN BOOLEAN Wait,
|
IN BOOLEAN Wait,
|
||||||
OUT PFILE_STANDARD_INFORMATION Buffer,
|
OUT PFILE_STANDARD_INFORMATION Buffer,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_QUERY_STANDARD_INFO *PFAST_IO_QUERY_STANDARD_INFO;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_LOCK)(
|
(NTAPI FAST_IO_LOCK)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN PLARGE_INTEGER Length,
|
IN PLARGE_INTEGER Length,
|
||||||
|
@ -1251,9 +1449,10 @@ typedef BOOLEAN
|
||||||
BOOLEAN ExclusiveLock,
|
BOOLEAN ExclusiveLock,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_LOCK *PFAST_IO_LOCK;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_UNLOCK_SINGLE)(
|
(NTAPI FAST_IO_UNLOCK_SINGLE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN PLARGE_INTEGER Length,
|
IN PLARGE_INTEGER Length,
|
||||||
|
@ -1261,24 +1460,27 @@ typedef BOOLEAN
|
||||||
ULONG Key,
|
ULONG Key,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_UNLOCK_SINGLE *PFAST_IO_UNLOCK_SINGLE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_UNLOCK_ALL)(
|
(NTAPI FAST_IO_UNLOCK_ALL)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
PEPROCESS ProcessId,
|
PEPROCESS ProcessId,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_UNLOCK_ALL *PFAST_IO_UNLOCK_ALL;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_UNLOCK_ALL_BY_KEY)(
|
(NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
PVOID ProcessId,
|
PVOID ProcessId,
|
||||||
ULONG Key,
|
ULONG Key,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_UNLOCK_ALL_BY_KEY *PFAST_IO_UNLOCK_ALL_BY_KEY;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_DEVICE_CONTROL)(
|
(NTAPI FAST_IO_DEVICE_CONTROL)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN BOOLEAN Wait,
|
IN BOOLEAN Wait,
|
||||||
IN PVOID InputBuffer OPTIONAL,
|
IN PVOID InputBuffer OPTIONAL,
|
||||||
|
@ -1288,37 +1490,43 @@ typedef BOOLEAN
|
||||||
IN ULONG IoControlCode,
|
IN ULONG IoControlCode,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_DEVICE_CONTROL *PFAST_IO_DEVICE_CONTROL;
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PFAST_IO_ACQUIRE_FILE)(
|
(NTAPI FAST_IO_ACQUIRE_FILE)(
|
||||||
IN struct _FILE_OBJECT *FileObject);
|
IN struct _FILE_OBJECT *FileObject);
|
||||||
|
typedef FAST_IO_ACQUIRE_FILE *PFAST_IO_ACQUIRE_FILE;
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PFAST_IO_RELEASE_FILE)(
|
(NTAPI FAST_IO_RELEASE_FILE)(
|
||||||
IN struct _FILE_OBJECT *FileObject);
|
IN struct _FILE_OBJECT *FileObject);
|
||||||
|
typedef FAST_IO_RELEASE_FILE *PFAST_IO_RELEASE_FILE;
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PFAST_IO_DETACH_DEVICE)(
|
(NTAPI FAST_IO_DETACH_DEVICE)(
|
||||||
IN struct _DEVICE_OBJECT *SourceDevice,
|
IN struct _DEVICE_OBJECT *SourceDevice,
|
||||||
IN struct _DEVICE_OBJECT *TargetDevice);
|
IN struct _DEVICE_OBJECT *TargetDevice);
|
||||||
|
typedef FAST_IO_DETACH_DEVICE *PFAST_IO_DETACH_DEVICE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_QUERY_NETWORK_OPEN_INFO)(
|
(NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN BOOLEAN Wait,
|
IN BOOLEAN Wait,
|
||||||
OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
|
OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
|
||||||
OUT struct _IO_STATUS_BLOCK *IoStatus,
|
OUT struct _IO_STATUS_BLOCK *IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_QUERY_NETWORK_OPEN_INFO *PFAST_IO_QUERY_NETWORK_OPEN_INFO;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PFAST_IO_ACQUIRE_FOR_MOD_WRITE)(
|
(NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER EndingOffset,
|
IN PLARGE_INTEGER EndingOffset,
|
||||||
OUT struct _ERESOURCE **ResourceToRelease,
|
OUT struct _ERESOURCE **ResourceToRelease,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_ACQUIRE_FOR_MOD_WRITE *PFAST_IO_ACQUIRE_FOR_MOD_WRITE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_MDL_READ)(
|
(NTAPI FAST_IO_MDL_READ)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1326,15 +1534,17 @@ typedef BOOLEAN
|
||||||
OUT PMDL *MdlChain,
|
OUT PMDL *MdlChain,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_MDL_READ *PFAST_IO_MDL_READ;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_MDL_READ_COMPLETE)(
|
(NTAPI FAST_IO_MDL_READ_COMPLETE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PMDL MdlChain,
|
IN PMDL MdlChain,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_MDL_READ_COMPLETE *PFAST_IO_MDL_READ_COMPLETE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_PREPARE_MDL_WRITE)(
|
(NTAPI FAST_IO_PREPARE_MDL_WRITE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1342,16 +1552,18 @@ typedef BOOLEAN
|
||||||
OUT PMDL *MdlChain,
|
OUT PMDL *MdlChain,
|
||||||
OUT PIO_STATUS_BLOCK IoStatus,
|
OUT PIO_STATUS_BLOCK IoStatus,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_PREPARE_MDL_WRITE *PFAST_IO_PREPARE_MDL_WRITE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_MDL_WRITE_COMPLETE)(
|
(NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN PMDL MdlChain,
|
IN PMDL MdlChain,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_MDL_WRITE_COMPLETE *PFAST_IO_MDL_WRITE_COMPLETE;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_READ_COMPRESSED)(
|
(NTAPI FAST_IO_READ_COMPRESSED)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1362,9 +1574,10 @@ typedef BOOLEAN
|
||||||
OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
|
OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
|
||||||
IN ULONG CompressedDataInfoLength,
|
IN ULONG CompressedDataInfoLength,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_READ_COMPRESSED *PFAST_IO_READ_COMPRESSED;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_WRITE_COMPRESSED)(
|
(NTAPI FAST_IO_WRITE_COMPRESSED)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN ULONG Length,
|
IN ULONG Length,
|
||||||
|
@ -1375,41 +1588,48 @@ typedef BOOLEAN
|
||||||
IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
|
IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
|
||||||
IN ULONG CompressedDataInfoLength,
|
IN ULONG CompressedDataInfoLength,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_WRITE_COMPRESSED *PFAST_IO_WRITE_COMPRESSED;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
|
(NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PMDL MdlChain,
|
IN PMDL MdlChain,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_MDL_READ_COMPLETE_COMPRESSED *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
|
(NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN PLARGE_INTEGER FileOffset,
|
IN PLARGE_INTEGER FileOffset,
|
||||||
IN PMDL MdlChain,
|
IN PMDL MdlChain,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(NTAPI *PFAST_IO_QUERY_OPEN)(
|
(NTAPI FAST_IO_QUERY_OPEN)(
|
||||||
IN struct _IRP *Irp,
|
IN struct _IRP *Irp,
|
||||||
OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
|
OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_QUERY_OPEN *PFAST_IO_QUERY_OPEN;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PFAST_IO_RELEASE_FOR_MOD_WRITE)(
|
(NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN struct _ERESOURCE *ResourceToRelease,
|
IN struct _ERESOURCE *ResourceToRelease,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_RELEASE_FOR_MOD_WRITE *PFAST_IO_RELEASE_FOR_MOD_WRITE;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PFAST_IO_ACQUIRE_FOR_CCFLUSH)(
|
(NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_ACQUIRE_FOR_CCFLUSH *PFAST_IO_ACQUIRE_FOR_CCFLUSH;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PFAST_IO_RELEASE_FOR_CCFLUSH) (
|
(NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject);
|
IN struct _DEVICE_OBJECT *DeviceObject);
|
||||||
|
typedef FAST_IO_RELEASE_FOR_CCFLUSH *PFAST_IO_RELEASE_FOR_CCFLUSH;
|
||||||
|
|
||||||
typedef struct _FAST_IO_DISPATCH {
|
typedef struct _FAST_IO_DISPATCH {
|
||||||
ULONG SizeOfFastIoDispatch;
|
ULONG SizeOfFastIoDispatch;
|
||||||
|
@ -1483,6 +1703,7 @@ typedef struct _IO_COMPLETION_CONTEXT {
|
||||||
#define FO_SKIP_COMPLETION_PORT 0x02000000
|
#define FO_SKIP_COMPLETION_PORT 0x02000000
|
||||||
#define FO_SKIP_SET_EVENT 0x04000000
|
#define FO_SKIP_SET_EVENT 0x04000000
|
||||||
#define FO_SKIP_SET_FAST_IO 0x08000000
|
#define FO_SKIP_SET_FAST_IO 0x08000000
|
||||||
|
#define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE
|
||||||
|
|
||||||
/* VPB.Flags */
|
/* VPB.Flags */
|
||||||
#define VPB_MOUNTED 0x0001
|
#define VPB_MOUNTED 0x0001
|
||||||
|
@ -1497,12 +1718,18 @@ typedef struct _IO_COMPLETION_CONTEXT {
|
||||||
#define SL_FORCE_ACCESS_CHECK 0x01
|
#define SL_FORCE_ACCESS_CHECK 0x01
|
||||||
#define SL_OPEN_PAGING_FILE 0x02
|
#define SL_OPEN_PAGING_FILE 0x02
|
||||||
#define SL_OPEN_TARGET_DIRECTORY 0x04
|
#define SL_OPEN_TARGET_DIRECTORY 0x04
|
||||||
|
#define SL_STOP_ON_SYMLINK 0x08
|
||||||
#define SL_CASE_SENSITIVE 0x80
|
#define SL_CASE_SENSITIVE 0x80
|
||||||
|
|
||||||
#define SL_KEY_SPECIFIED 0x01
|
#define SL_KEY_SPECIFIED 0x01
|
||||||
#define SL_OVERRIDE_VERIFY_VOLUME 0x02
|
#define SL_OVERRIDE_VERIFY_VOLUME 0x02
|
||||||
#define SL_WRITE_THROUGH 0x04
|
#define SL_WRITE_THROUGH 0x04
|
||||||
#define SL_FT_SEQUENTIAL_WRITE 0x08
|
#define SL_FT_SEQUENTIAL_WRITE 0x08
|
||||||
|
#define SL_FORCE_DIRECT_WRITE 0x10
|
||||||
|
#define SL_REALTIME_STREAM 0x20
|
||||||
|
|
||||||
|
#define SL_READ_ACCESS_GRANTED 0x01
|
||||||
|
#define SL_WRITE_ACCESS_GRANTED 0x04
|
||||||
|
|
||||||
#define SL_FAIL_IMMEDIATELY 0x01
|
#define SL_FAIL_IMMEDIATELY 0x01
|
||||||
#define SL_EXCLUSIVE_LOCK 0x02
|
#define SL_EXCLUSIVE_LOCK 0x02
|
||||||
|
@ -1607,6 +1834,9 @@ typedef struct _IO_COMPLETION_CONTEXT {
|
||||||
#define IRP_MN_QUERY_BUS_INFORMATION 0x15
|
#define IRP_MN_QUERY_BUS_INFORMATION 0x15
|
||||||
#define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
|
#define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
|
||||||
#define IRP_MN_SURPRISE_REMOVAL 0x17
|
#define IRP_MN_SURPRISE_REMOVAL 0x17
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||||
|
#define IRP_MN_DEVICE_ENUMERATED 0x19
|
||||||
|
#endif
|
||||||
|
|
||||||
#define IRP_MN_WAIT_WAKE 0x00
|
#define IRP_MN_WAIT_WAKE 0x00
|
||||||
#define IRP_MN_POWER_SEQUENCE 0x01
|
#define IRP_MN_POWER_SEQUENCE 0x01
|
||||||
|
@ -2143,11 +2373,12 @@ typedef NTSTATUS
|
||||||
typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
|
typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PIO_DPC_ROUTINE)(
|
(NTAPI IO_DPC_ROUTINE)(
|
||||||
IN struct _KDPC *Dpc,
|
IN struct _KDPC *Dpc,
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||||
IN struct _IRP *Irp,
|
IN struct _IRP *Irp,
|
||||||
IN PVOID Context);
|
IN PVOID Context);
|
||||||
|
typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
|
||||||
|
|
||||||
typedef NTSTATUS
|
typedef NTSTATUS
|
||||||
(NTAPI *PMM_DLL_INITIALIZE)(
|
(NTAPI *PMM_DLL_INITIALIZE)(
|
||||||
|
@ -2158,9 +2389,10 @@ typedef NTSTATUS
|
||||||
VOID);
|
VOID);
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PIO_TIMER_ROUTINE)(
|
(NTAPI IO_TIMER_ROUTINE)(
|
||||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||||
IN PVOID Context);
|
IN PVOID Context);
|
||||||
|
typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
|
||||||
|
|
||||||
typedef struct _IO_SECURITY_CONTEXT {
|
typedef struct _IO_SECURITY_CONTEXT {
|
||||||
PSECURITY_QUALITY_OF_SERVICE SecurityQos;
|
PSECURITY_QUALITY_OF_SERVICE SecurityQos;
|
||||||
|
@ -2182,6 +2414,13 @@ typedef VOID
|
||||||
IN struct _IO_CSQ *Csq,
|
IN struct _IO_CSQ *Csq,
|
||||||
IN PIRP Irp);
|
IN PIRP Irp);
|
||||||
|
|
||||||
|
typedef NTSTATUS
|
||||||
|
(NTAPI IO_CSQ_INSERT_IRP_EX)(
|
||||||
|
IN struct _IO_CSQ *Csq,
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN PVOID InsertContext);
|
||||||
|
typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
|
||||||
|
|
||||||
typedef VOID
|
typedef VOID
|
||||||
(NTAPI *PIO_CSQ_REMOVE_IRP)(
|
(NTAPI *PIO_CSQ_REMOVE_IRP)(
|
||||||
IN struct _IO_CSQ *Csq,
|
IN struct _IO_CSQ *Csq,
|
||||||
|
@ -2629,3 +2868,18 @@ typedef struct _IO_STACK_LOCATION {
|
||||||
|
|
||||||
/* end winnt.h */
|
/* end winnt.h */
|
||||||
|
|
||||||
|
#define WMIREG_ACTION_REGISTER 1
|
||||||
|
#define WMIREG_ACTION_DEREGISTER 2
|
||||||
|
#define WMIREG_ACTION_REREGISTER 3
|
||||||
|
#define WMIREG_ACTION_UPDATE_GUIDS 4
|
||||||
|
#define WMIREG_ACTION_BLOCK_IRPS 5
|
||||||
|
|
||||||
|
#define WMIREGISTER 0
|
||||||
|
#define WMIUPDATE 1
|
||||||
|
|
||||||
|
typedef VOID
|
||||||
|
(NTAPI FWMI_NOTIFICATION_CALLBACK)(
|
||||||
|
PVOID Wnode,
|
||||||
|
PVOID Context);
|
||||||
|
typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,9 @@
|
||||||
((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
|
((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
|
||||||
+ (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
|
+ (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
|
||||||
|
|
||||||
|
#define COMPUTE_PAGES_SPANNED(Va, Size) \
|
||||||
|
ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ULONG
|
* ULONG
|
||||||
* MmGetMdlByteCount(
|
* MmGetMdlByteCount(
|
||||||
|
@ -96,6 +99,8 @@
|
||||||
#define MmGetMdlByteOffset(_Mdl) \
|
#define MmGetMdlByteOffset(_Mdl) \
|
||||||
((_Mdl)->ByteOffset)
|
((_Mdl)->ByteOffset)
|
||||||
|
|
||||||
|
#define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PPFN_NUMBER
|
* PPFN_NUMBER
|
||||||
* MmGetMdlPfnArray(
|
* MmGetMdlPfnArray(
|
||||||
|
@ -344,6 +349,17 @@ MmUnmapLockedPages(
|
||||||
IN PVOID BaseAddress,
|
IN PVOID BaseAddress,
|
||||||
IN PMDL MemoryDescriptorList);
|
IN PMDL MemoryDescriptorList);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
PVOID
|
||||||
|
NTAPI
|
||||||
|
MmAllocateContiguousMemorySpecifyCacheNode(
|
||||||
|
IN SIZE_T NumberOfBytes,
|
||||||
|
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||||
|
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||||
|
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
|
||||||
|
IN MEMORY_CACHING_TYPE CacheType,
|
||||||
|
IN NODE_REQUIREMENT PreferredNode);
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||||
|
@ -399,8 +415,24 @@ MmUnmapReservedMapping(
|
||||||
IN ULONG PoolTag,
|
IN ULONG PoolTag,
|
||||||
IN PMDL MemoryDescriptorList);
|
IN PMDL MemoryDescriptorList);
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
MmAddVerifierThunks(
|
||||||
|
IN PVOID ThunkBuffer,
|
||||||
|
IN ULONG ThunkBufferSize);
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||||
|
NTKERNELAPI
|
||||||
|
LOGICAL
|
||||||
|
NTAPI
|
||||||
|
MmIsIoSpaceActive(
|
||||||
|
IN PHYSICAL_ADDRESS StartAddress,
|
||||||
|
IN SIZE_T NumberOfBytes);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
|
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
|
||||||
NTKERNELAPI
|
NTKERNELAPI
|
||||||
PMDL
|
PMDL
|
||||||
|
@ -414,3 +446,11 @@ MmAllocatePagesForMdlEx(
|
||||||
IN ULONG Flags);
|
IN ULONG Flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
NTKERNELAPI
|
||||||
|
LOGICAL
|
||||||
|
NTAPI
|
||||||
|
MmIsDriverVerifyingByAddress(
|
||||||
|
IN PVOID AddressWithinSection);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,17 @@
|
||||||
* Memory manager Types *
|
* Memory manager Types *
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#define MM_DONT_ZERO_ALLOCATION 0x00000001
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||||
#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY 0x00000002
|
typedef ULONG NODE_REQUIREMENT;
|
||||||
#define MM_ALLOCATE_FULLY_REQUIRED 0x00000004
|
#define MM_ANY_NODE_OK 0x80000000
|
||||||
#define MM_ALLOCATE_NO_WAIT 0x00000008
|
#endif
|
||||||
#define MM_ALLOCATE_PREFER_CONTIGUOUS 0x00000010
|
|
||||||
#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS 0x00000020
|
#define MM_DONT_ZERO_ALLOCATION 0x00000001
|
||||||
|
#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY 0x00000002
|
||||||
|
#define MM_ALLOCATE_FULLY_REQUIRED 0x00000004
|
||||||
|
#define MM_ALLOCATE_NO_WAIT 0x00000008
|
||||||
|
#define MM_ALLOCATE_PREFER_CONTIGUOUS 0x00000010
|
||||||
|
#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS 0x00000020
|
||||||
|
|
||||||
#define MDL_MAPPED_TO_SYSTEM_VA 0x0001
|
#define MDL_MAPPED_TO_SYSTEM_VA 0x0001
|
||||||
#define MDL_PAGES_LOCKED 0x0002
|
#define MDL_PAGES_LOCKED 0x0002
|
||||||
|
|
|
@ -44,3 +44,10 @@ PsTerminateSystemThread(
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NTKERNELAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
PsWrapApcWow64Thread(
|
||||||
|
IN OUT PVOID *ApcContext,
|
||||||
|
IN OUT PVOID *ApcRoutine);
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,11 @@ typedef struct _ACCESS_STATE {
|
||||||
UNICODE_STRING ObjectTypeName;
|
UNICODE_STRING ObjectTypeName;
|
||||||
} ACCESS_STATE, *PACCESS_STATE;
|
} ACCESS_STATE, *PACCESS_STATE;
|
||||||
|
|
||||||
|
typedef VOID
|
||||||
|
(NTAPI *PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR)(
|
||||||
|
IN PVOID Vcb,
|
||||||
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||||
|
|
||||||
#ifndef _NTLSA_IFS_
|
#ifndef _NTLSA_IFS_
|
||||||
|
|
||||||
#ifndef _NTLSA_AUDIT_
|
#ifndef _NTLSA_AUDIT_
|
||||||
|
|
|
@ -124,7 +124,6 @@ struct _IO_RESOURCE_DESCRIPTOR;
|
||||||
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
||||||
typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
|
typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
|
||||||
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
||||||
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
|
|
||||||
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
|
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
|
||||||
typedef struct _EPROCESS *PEPROCESS;
|
typedef struct _EPROCESS *PEPROCESS;
|
||||||
typedef struct _ETHREAD *PETHREAD;
|
typedef struct _ETHREAD *PETHREAD;
|
||||||
|
@ -134,6 +133,14 @@ typedef struct _KPROCESS *PKPROCESS;
|
||||||
typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
|
typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
|
||||||
typedef struct _CONTEXT *PCONTEXT;
|
typedef struct _CONTEXT *PCONTEXT;
|
||||||
|
|
||||||
|
#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && ( defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_))
|
||||||
|
typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
|
||||||
|
#elif defined(_WDM_INCLUDED_)
|
||||||
|
typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
|
||||||
|
#else
|
||||||
|
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
$define (_WDMDDK_)
|
$define (_WDMDDK_)
|
||||||
$include (interlocked.h)
|
$include (interlocked.h)
|
||||||
|
@ -257,6 +264,9 @@ extern ULONG NtGlobalFlag;
|
||||||
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
|
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern PBOOLEAN Mm64BitPhysicalAddress;
|
||||||
|
|
||||||
|
extern PVOID MmBadPointer;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in a new issue