mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 01:12:58 +00:00
revert r46552 and r46553
svn path=/trunk/; revision=46554
This commit is contained in:
parent
b359df2f32
commit
59f2edfce7
15 changed files with 8066 additions and 15016 deletions
|
@ -42,11 +42,8 @@ typedef unsigned char BYTE;
|
||||||
/* REACTOS FIXME */
|
/* REACTOS FIXME */
|
||||||
#undef DeleteFile
|
#undef DeleteFile
|
||||||
/* This is deprecated and should be changed in the EXT2FS driver. */
|
/* This is deprecated and should be changed in the EXT2FS driver. */
|
||||||
|
|
||||||
/* FIXME : Those two definitions already exist in wdm.h
|
|
||||||
#define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
|
#define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
|
||||||
#define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
|
#define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// the following include files should be in the inc sub-dir associated with this driver
|
// the following include files should be in the inc sub-dir associated with this driver
|
||||||
|
|
|
@ -17,6 +17,15 @@
|
||||||
#define PST_RS232 1
|
#define PST_RS232 1
|
||||||
#define COMMPROP_INITIALIZED 0xE73CF52E
|
#define COMMPROP_INITIALIZED 0xE73CF52E
|
||||||
|
|
||||||
|
#ifndef _NTIFS_
|
||||||
|
/* Why is it only defined in ntifs.h file? */
|
||||||
|
NTSTATUS NTAPI
|
||||||
|
IoAttachDeviceToDeviceStackSafe(
|
||||||
|
IN PDEVICE_OBJECT SourceDevice,
|
||||||
|
IN PDEVICE_OBJECT TargetDevice,
|
||||||
|
OUT PDEVICE_OBJECT *AttachedToDeviceObject);
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
dsStopped,
|
dsStopped,
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Helper macro to enable gcc's extension. */
|
/* Helper macro to enable gcc's extension. */
|
||||||
#ifndef __GNU_EXTENSION
|
#ifndef __GNU_EXTENSION
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define __GNU_EXTENSION __extension__
|
#define __GNU_EXTENSION __extension__
|
||||||
|
@ -16,190 +12,150 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define STDMETHODCALLTYPE __stdcall
|
#define STDMETHODCALLTYPE __stdcall
|
||||||
|
|
||||||
#ifndef _WDMDDK_
|
|
||||||
typedef GUID *PGUID;
|
typedef GUID *PGUID;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Types */
|
/* Types */
|
||||||
|
|
||||||
typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
|
typedef struct _BDA_PIN_PAIRING
|
||||||
|
{
|
||||||
typedef struct _BDA_PIN_PAIRING {
|
ULONG ulInputPin;
|
||||||
ULONG ulInputPin;
|
ULONG ulOutputPin;
|
||||||
ULONG ulOutputPin;
|
ULONG ulcMaxInputsPerOutput;
|
||||||
ULONG ulcMaxInputsPerOutput;
|
ULONG ulcMinInputsPerOutput;
|
||||||
ULONG ulcMinInputsPerOutput;
|
ULONG ulcMaxOutputsPerInput;
|
||||||
ULONG ulcMaxOutputsPerInput;
|
ULONG ulcMinOutputsPerInput;
|
||||||
ULONG ulcMinOutputsPerInput;
|
ULONG ulcTopologyJoints;
|
||||||
ULONG ulcTopologyJoints;
|
const ULONG *pTopologyJoints;
|
||||||
const ULONG *pTopologyJoints;
|
|
||||||
} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
|
} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
|
||||||
|
|
||||||
typedef struct _BDA_FILTER_TEMPLATE {
|
typedef struct _BDA_FILTER_TEMPLATE
|
||||||
const KSFILTER_DESCRIPTOR *pFilterDescriptor;
|
{
|
||||||
ULONG ulcPinPairs;
|
const KSFILTER_DESCRIPTOR *pFilterDescriptor;
|
||||||
const BDA_PIN_PAIRING *pPinPairs;
|
ULONG ulcPinPairs;
|
||||||
|
const BDA_PIN_PAIRING *pPinPairs;
|
||||||
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
|
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
|
||||||
|
|
||||||
typedef struct _KSM_PIN_PAIR {
|
|
||||||
KSMETHOD Method;
|
|
||||||
ULONG InputPinId;
|
|
||||||
ULONG OutputPinId;
|
|
||||||
ULONG Reserved;
|
|
||||||
} KSM_PIN_PAIR, * PKSM_PIN_PAIR;
|
|
||||||
|
|
||||||
typedef struct _KSM_PIN {
|
typedef struct _KSM_PIN
|
||||||
KSMETHOD Method;
|
{
|
||||||
__GNU_EXTENSION union {
|
KSMETHOD Method;
|
||||||
ULONG PinId;
|
__GNU_EXTENSION union
|
||||||
ULONG PinType;
|
{
|
||||||
};
|
ULONG PinId;
|
||||||
ULONG Reserved;
|
ULONG PinType;
|
||||||
|
};
|
||||||
|
ULONG Reserved;
|
||||||
} KSM_PIN, * PKSM_PIN;
|
} KSM_PIN, * PKSM_PIN;
|
||||||
|
|
||||||
/* Functions */
|
/* Functions */
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaCheckChanges(IN PIRP Irp);
|
||||||
BdaCheckChanges(
|
STDMETHODIMP_(NTSTATUS) BdaCommitChanges(IN PIRP Irp);
|
||||||
IN PIRP Irp);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactory(
|
||||||
BdaCommitChanges(
|
IN PKSDEVICE pKSDevice,
|
||||||
IN PIRP Irp);
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
||||||
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactoryEx(
|
||||||
BdaCreateFilterFactory(
|
IN PKSDEVICE pKSDevice,
|
||||||
IN PKSDEVICE pKSDevice,
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
||||||
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
|
||||||
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
OUT PKSFILTERFACTORY *ppKSFilterFactory);
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaCreatePin(
|
||||||
BdaCreateFilterFactoryEx(
|
IN PKSFILTER pKSFilter,
|
||||||
IN PKSDEVICE pKSDevice,
|
IN ULONG ulPinType,
|
||||||
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
OUT ULONG *pulPinId);
|
||||||
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
|
|
||||||
OUT PKSFILTERFACTORY *ppKSFilterFactory);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaCreateTopology(
|
||||||
BdaCreatePin(
|
IN PKSFILTER pKSFilter,
|
||||||
IN PKSFILTER pKSFilter,
|
IN ULONG InputPinId,
|
||||||
IN ULONG ulPinType,
|
IN ULONG OutputPinId);
|
||||||
OUT ULONG *pulPinId);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaDeletePin(
|
||||||
BdaCreateTopology(
|
IN PKSFILTER pKSFilter,
|
||||||
IN PKSFILTER pKSFilter,
|
IN ULONG *pulPinId);
|
||||||
IN ULONG InputPinId,
|
|
||||||
IN ULONG OutputPinId);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaFilterFactoryUpdateCacheData(
|
||||||
BdaDeletePin(
|
IN PKSFILTERFACTORY pFilterFactory,
|
||||||
IN PKSFILTER pKSFilter,
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
|
||||||
IN ULONG *pulPinId);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaGetChangeState(
|
||||||
BdaFilterFactoryUpdateCacheData(
|
IN PIRP Irp,
|
||||||
IN PKSFILTERFACTORY pFilterFactory,
|
OUT BDA_CHANGE_STATE *pChangeState);
|
||||||
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaInitFilter(
|
||||||
BdaGetChangeState(
|
IN PKSFILTER pKSFilter,
|
||||||
IN PIRP Irp,
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
||||||
OUT BDA_CHANGE_STATE *pChangeState);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaMethodCreatePin(
|
||||||
BdaInitFilter(
|
IN PIRP Irp,
|
||||||
IN PKSFILTER pKSFilter,
|
IN KSMETHOD *pKSMethod,
|
||||||
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
OUT ULONG *pulPinFactoryID);
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaMethodCreateTopology(
|
||||||
BdaMethodCreatePin(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSMETHOD *pKSMethod,
|
||||||
IN KSMETHOD *pKSMethod,
|
OPTIONAL PVOID pvIgnored);
|
||||||
OUT ULONG *pulPinFactoryID);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaMethodDeletePin(
|
||||||
BdaMethodCreateTopology(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSMETHOD *pKSMethod,
|
||||||
IN KSMETHOD *pKSMethod,
|
OPTIONAL PVOID pvIgnored);
|
||||||
OPTIONAL PVOID pvIgnored);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyGetControllingPinId(
|
||||||
BdaMethodDeletePin(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSP_BDA_NODE_PIN *pProperty,
|
||||||
IN KSMETHOD *pKSMethod,
|
OUT ULONG *pulControllingPinId);
|
||||||
OPTIONAL PVOID pvIgnored);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyGetPinControl(
|
||||||
BdaPropertyGetControllingPinId(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSPROPERTY *pKSProperty,
|
||||||
IN KSP_BDA_NODE_PIN *pProperty,
|
OUT ULONG *pulProperty);
|
||||||
OUT ULONG *pulControllingPinId);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeDescriptors(
|
||||||
BdaPropertyGetPinControl(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSPROPERTY *pKSProperty,
|
||||||
IN KSPROPERTY *pKSProperty,
|
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
|
||||||
OUT ULONG *pulProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeEvents(
|
||||||
BdaPropertyNodeDescriptors(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSP_NODE *pKSProperty,
|
||||||
IN KSPROPERTY *pKSProperty,
|
OUT GUID *pguidProperty);
|
||||||
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeMethods(
|
||||||
BdaPropertyNodeEvents(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSP_NODE *pKSProperty,
|
||||||
IN KSP_NODE *pKSProperty,
|
OUT GUID *pguidProperty);
|
||||||
OUT GUID *pguidProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeProperties(
|
||||||
BdaPropertyNodeMethods(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSP_NODE *pKSProperty,
|
||||||
IN KSP_NODE *pKSProperty,
|
OUT GUID *pguidProperty);
|
||||||
OUT GUID *pguidProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeTypes(
|
||||||
BdaPropertyNodeProperties(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSPROPERTY *pKSProperty,
|
||||||
IN KSP_NODE *pKSProperty,
|
OUT ULONG *pulProperty);
|
||||||
OUT GUID *pguidProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyPinTypes(
|
||||||
BdaPropertyNodeTypes(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSPROPERTY *pKSProperty,
|
||||||
IN KSPROPERTY *pKSProperty,
|
OUT ULONG *pulProperty);
|
||||||
OUT ULONG *pulProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaPropertyTemplateConnections(
|
||||||
BdaPropertyPinTypes(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp,
|
IN KSPROPERTY *pKSProperty,
|
||||||
IN KSPROPERTY *pKSProperty,
|
OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
|
||||||
OUT ULONG *pulProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaStartChanges(IN PIRP Irp);
|
||||||
BdaPropertyTemplateConnections(
|
STDMETHODIMP_(NTSTATUS) BdaUninitFilter(IN PKSFILTER pKSFilter);
|
||||||
IN PIRP Irp,
|
|
||||||
IN KSPROPERTY *pKSProperty,
|
|
||||||
OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
STDMETHODIMP_(NTSTATUS) BdaValidateNodeProperty(
|
||||||
BdaStartChanges(
|
IN PIRP Irp,
|
||||||
IN PIRP Irp);
|
IN KSPROPERTY *pKSProperty);
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
|
||||||
BdaUninitFilter(
|
|
||||||
IN PKSFILTER pKSFilter);
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS)
|
|
||||||
BdaValidateNodeProperty(
|
|
||||||
IN PIRP Irp,
|
|
||||||
IN KSPROPERTY *pKSProperty);
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
|
||||||
|
|
|
@ -229,11 +229,9 @@ 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
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -394,33 +394,22 @@ typedef struct _IMAGE_NT_HEADERS64 {
|
||||||
ULONG Signature;
|
ULONG Signature;
|
||||||
IMAGE_FILE_HEADER FileHeader;
|
IMAGE_FILE_HEADER FileHeader;
|
||||||
IMAGE_OPTIONAL_HEADER64 OptionalHeader;
|
IMAGE_OPTIONAL_HEADER64 OptionalHeader;
|
||||||
} IMAGE_NT_HEADERS64;
|
} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
|
||||||
|
|
||||||
typedef struct _IMAGE_NT_HEADERS {
|
typedef struct _IMAGE_NT_HEADERS {
|
||||||
ULONG Signature;
|
ULONG Signature;
|
||||||
IMAGE_FILE_HEADER FileHeader;
|
IMAGE_FILE_HEADER FileHeader;
|
||||||
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
|
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
|
||||||
} IMAGE_NT_HEADERS32;
|
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
|
||||||
|
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
|
typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
|
||||||
#else
|
|
||||||
typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _NTDDK_
|
|
||||||
|
|
||||||
typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32;
|
|
||||||
typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64;
|
|
||||||
|
|
||||||
#ifdef _WIN64
|
|
||||||
typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
|
typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
|
||||||
#else
|
#else
|
||||||
|
typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
|
||||||
typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
|
typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _NTDDK_ */
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Retreives the first image section header from the Nt Header
|
// Retreives the first image section header from the Nt Header
|
||||||
//
|
//
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -546,6 +546,17 @@ typedef enum _KAPC_ENVIRONMENT
|
||||||
InsertApcEnvironment
|
InsertApcEnvironment
|
||||||
} KAPC_ENVIRONMENT;
|
} KAPC_ENVIRONMENT;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CPU Cache Types
|
||||||
|
//
|
||||||
|
typedef enum _PROCESSOR_CACHE_TYPE
|
||||||
|
{
|
||||||
|
CacheUnified,
|
||||||
|
CacheInstruction,
|
||||||
|
CacheData,
|
||||||
|
CacheTrace,
|
||||||
|
} PROCESSOR_CACHE_TYPE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// PRCB DPC Data
|
// PRCB DPC Data
|
||||||
//
|
//
|
||||||
|
@ -566,6 +577,18 @@ typedef struct _PP_LOOKASIDE_LIST
|
||||||
struct _GENERAL_LOOKASIDE *L;
|
struct _GENERAL_LOOKASIDE *L;
|
||||||
} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
|
} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CPU Cache Descriptor
|
||||||
|
//
|
||||||
|
typedef struct _CACHE_DESCRIPTOR
|
||||||
|
{
|
||||||
|
UCHAR Level;
|
||||||
|
UCHAR Associativity;
|
||||||
|
USHORT LineSize;
|
||||||
|
ULONG Size;
|
||||||
|
PROCESSOR_CACHE_TYPE Type;
|
||||||
|
} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Architectural Types
|
// Architectural Types
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
#define PASTE2(x,y) x##y
|
#define PASTE2(x,y) x##y
|
||||||
#define PASTE(x,y) PASTE2(x,y)
|
#define PASTE(x,y) PASTE2(x,y)
|
||||||
|
|
||||||
|
@ -18,10 +19,6 @@
|
||||||
#define GDI_HANDLE_BUFFER_SIZE 34
|
#define GDI_HANDLE_BUFFER_SIZE 34
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_NTDDK_INCLUDED_) || defined(_NTIFS_)
|
|
||||||
#define PPEB PPEB_RENAMED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct STRUCT(_PEB)
|
typedef struct STRUCT(_PEB)
|
||||||
{
|
{
|
||||||
BOOLEAN InheritedAddressSpace;
|
BOOLEAN InheritedAddressSpace;
|
||||||
|
@ -155,7 +152,6 @@ typedef struct STRUCT(_PEB)
|
||||||
#endif
|
#endif
|
||||||
} STRUCT(PEB), *STRUCT(PPEB);
|
} STRUCT(PEB), *STRUCT(PPEB);
|
||||||
|
|
||||||
#undef PPEB
|
|
||||||
|
|
||||||
#if defined(_WIN64) && !defined(EXPLICIT_32BIT)
|
#if defined(_WIN64) && !defined(EXPLICIT_32BIT)
|
||||||
C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
|
C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
|
||||||
|
|
|
@ -72,10 +72,7 @@
|
||||||
#define MAX_TRANSACTION_DESCRIPTION_LENGTH 64
|
#define MAX_TRANSACTION_DESCRIPTION_LENGTH 64
|
||||||
#define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH 64
|
#define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH 64
|
||||||
|
|
||||||
#ifndef _WDMDDK_
|
|
||||||
typedef GUID UOW, *PUOW;
|
typedef GUID UOW, *PUOW;
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
|
typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
|
||||||
typedef ULONG NOTIFICATION_MASK;
|
typedef ULONG NOTIFICATION_MASK;
|
||||||
typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;
|
typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
#ifndef _NTDEF_
|
#ifndef _NTDEF_H
|
||||||
#define _NTDEF_
|
#define _NTDEF_H
|
||||||
|
|
||||||
/* Dependencies */
|
//
|
||||||
|
// Dependencies
|
||||||
|
//
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <basetsd.h>
|
#include <basetsd.h>
|
||||||
#include <excpt.h>
|
#include <excpt.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
// FIXME: Shouldn't be included!
|
// FIXME: Should we include these here?
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -22,8 +24,11 @@
|
||||||
|
|
||||||
typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
|
|
||||||
/* Pseudo Modifiers for Input Parameters */
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Pseudo Modifiers for Input Parameters
|
||||||
|
//
|
||||||
#ifndef IN
|
#ifndef IN
|
||||||
#define IN
|
#define IN
|
||||||
#endif
|
#endif
|
||||||
|
@ -49,21 +54,29 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Defines the "size" of an any-size array */
|
//
|
||||||
|
// Defines the "size" of an any-size array
|
||||||
|
//
|
||||||
#ifndef ANYSIZE_ARRAY
|
#ifndef ANYSIZE_ARRAY
|
||||||
#define ANYSIZE_ARRAY 1
|
#define ANYSIZE_ARRAY 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Constant modifier */
|
//
|
||||||
|
// Constant modifier
|
||||||
|
//
|
||||||
#ifndef CONST
|
#ifndef CONST
|
||||||
#define CONST const
|
#define CONST const
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TRUE/FALSE */
|
//
|
||||||
|
// TRUE/FALSE
|
||||||
|
//
|
||||||
#define FALSE 0
|
#define FALSE 0
|
||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
|
|
||||||
/* NULL/NULL64 */
|
//
|
||||||
|
// NULL/NULL64
|
||||||
|
//
|
||||||
#ifndef NULL
|
#ifndef NULL
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define NULL 0
|
#define NULL 0
|
||||||
|
@ -72,8 +85,22 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#define NULL ((void *)0)
|
#define NULL ((void *)0)
|
||||||
#define NULL64 ((void * POINTER_64)0)
|
#define NULL64 ((void * POINTER_64)0)
|
||||||
#endif
|
#endif
|
||||||
#endif /* NULL */
|
#endif // NULL
|
||||||
|
|
||||||
|
typedef enum _EVENT_TYPE {
|
||||||
|
NotificationEvent,
|
||||||
|
SynchronizationEvent
|
||||||
|
} EVENT_TYPE;
|
||||||
|
|
||||||
|
typedef enum _TIMER_TYPE {
|
||||||
|
NotificationTimer,
|
||||||
|
SynchronizationTimer
|
||||||
|
} TIMER_TYPE;
|
||||||
|
|
||||||
|
typedef enum _WAIT_TYPE {
|
||||||
|
WaitAll,
|
||||||
|
WaitAny
|
||||||
|
} WAIT_TYPE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME
|
// FIXME
|
||||||
|
@ -144,27 +171,35 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#define ARGUMENT_PRESENT(ArgumentPointer) \
|
#define ARGUMENT_PRESENT(ArgumentPointer) \
|
||||||
((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
|
((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
|
||||||
|
|
||||||
/* Returns the base address of a structure from a structure member */
|
//
|
||||||
|
// Returns the base address of a structure from a structure member
|
||||||
|
//
|
||||||
#ifndef CONTAINING_RECORD
|
#ifndef CONTAINING_RECORD
|
||||||
#define CONTAINING_RECORD(address, type, field) \
|
#define CONTAINING_RECORD(address, type, field) \
|
||||||
((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
|
((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Returns the byte offset of the specified structure's member */
|
//
|
||||||
|
// Returns the byte offset of the specified structure's member
|
||||||
|
//
|
||||||
#ifndef __GNUC__
|
#ifndef __GNUC__
|
||||||
#define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
|
#define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
|
||||||
#else
|
#else
|
||||||
#define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field)
|
#define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Returns the type's alignment */
|
//
|
||||||
|
// Returns the type's alignment
|
||||||
|
//
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1300)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1300)
|
||||||
#define TYPE_ALIGNMENT(t) __alignof(t)
|
#define TYPE_ALIGNMENT(t) __alignof(t)
|
||||||
#else
|
#else
|
||||||
#define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test )
|
#define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Calling Conventions */
|
//
|
||||||
|
// Calling Conventions
|
||||||
|
//
|
||||||
#if defined(_M_IX86)
|
#if defined(_M_IX86)
|
||||||
#define FASTCALL __fastcall
|
#define FASTCALL __fastcall
|
||||||
#else
|
#else
|
||||||
|
@ -173,13 +208,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
|
|
||||||
#define NTAPI __stdcall
|
#define NTAPI __stdcall
|
||||||
|
|
||||||
|
//
|
||||||
|
// Used by the DDK exclusively , don't put in drivers
|
||||||
|
//
|
||||||
|
#define DDKAPI __stdcall // Use NTAPI instead
|
||||||
|
#define DDKCDECLAPI __cdecl // Just use __cdecl
|
||||||
|
|
||||||
/* Import and Export Specifiers */
|
//
|
||||||
|
// Import and Export Specifiers
|
||||||
|
//
|
||||||
|
|
||||||
/* Done the same way as in windef.h for now */
|
// Done the same way as in windef.h for now
|
||||||
#define DECLSPEC_IMPORT __declspec(dllimport)
|
#define DECLSPEC_IMPORT __declspec(dllimport)
|
||||||
#define DECLSPEC_NORETURN __declspec(noreturn)
|
#define DECLSPEC_NORETURN __declspec(noreturn)
|
||||||
|
|
||||||
|
|
||||||
#ifndef DECLSPEC_ADDRSAFE
|
#ifndef DECLSPEC_ADDRSAFE
|
||||||
#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
|
#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
|
||||||
#define DECLSPEC_ADDRSAFE __declspec(address_safe)
|
#define DECLSPEC_ADDRSAFE __declspec(address_safe)
|
||||||
|
@ -200,7 +243,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Inlines */
|
//
|
||||||
|
// Inlines
|
||||||
|
//
|
||||||
#ifndef FORCEINLINE
|
#ifndef FORCEINLINE
|
||||||
#if (_MSC_VER >= 1200)
|
#if (_MSC_VER >= 1200)
|
||||||
#define FORCEINLINE __forceinline
|
#define FORCEINLINE __forceinline
|
||||||
|
@ -227,7 +272,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#define NTAPI_INLINE
|
#define NTAPI_INLINE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Use to specify structure alignment */
|
//
|
||||||
|
// Use to specify structure alignment
|
||||||
|
//
|
||||||
#ifndef DECLSPEC_ALIGN
|
#ifndef DECLSPEC_ALIGN
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
|
||||||
#define DECLSPEC_ALIGN(x) __declspec(align(x))
|
#define DECLSPEC_ALIGN(x) __declspec(align(x))
|
||||||
|
@ -238,13 +285,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Use to silence unused variable warnings when it is intentional */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Use to silence unused variable warnings when it is intentional
|
||||||
|
//
|
||||||
#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
|
#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
|
||||||
#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
|
#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
|
||||||
#define DBG_UNREFERENCED_PARAMETER(P)
|
#define DBG_UNREFERENCED_PARAMETER(P)
|
||||||
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
|
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
|
||||||
|
|
||||||
/* min/max helper macros */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// min/max helper macros
|
||||||
|
//
|
||||||
#ifndef NOMINMAX
|
#ifndef NOMINMAX
|
||||||
|
|
||||||
#ifndef min
|
#ifndef min
|
||||||
|
@ -255,17 +310,25 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
|
||||||
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* NOMINMAX */
|
#endif // NOMINMAX
|
||||||
|
|
||||||
/* Tell windef.h that we have defined some basic types */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Tell windef.h that we have defined some basic types
|
||||||
|
//
|
||||||
#define BASETYPES
|
#define BASETYPES
|
||||||
|
|
||||||
/* Void Pointers */
|
//
|
||||||
|
// Void Pointers
|
||||||
|
//
|
||||||
typedef void *PVOID;
|
typedef void *PVOID;
|
||||||
//typedef void * POINTER_64 PVOID64;
|
//typedef void * POINTER_64 PVOID64;
|
||||||
typedef PVOID PVOID64; // FIXME!
|
typedef PVOID PVOID64; // FIXME!
|
||||||
|
|
||||||
/* Handle Type */
|
//
|
||||||
|
// Handle Type
|
||||||
|
//
|
||||||
#ifdef STRICT
|
#ifdef STRICT
|
||||||
typedef void *HANDLE;
|
typedef void *HANDLE;
|
||||||
#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
|
#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
|
||||||
|
@ -275,7 +338,9 @@ typedef PVOID HANDLE;
|
||||||
#endif
|
#endif
|
||||||
typedef HANDLE *PHANDLE;
|
typedef HANDLE *PHANDLE;
|
||||||
|
|
||||||
/* Upper-Case Versions of Some Standard C Types */
|
//
|
||||||
|
// Upper-Case Versions of Some Standard C Types
|
||||||
|
//
|
||||||
#ifndef VOID
|
#ifndef VOID
|
||||||
#define VOID void
|
#define VOID void
|
||||||
typedef char CHAR;
|
typedef char CHAR;
|
||||||
|
@ -287,25 +352,47 @@ typedef int INT;
|
||||||
#endif
|
#endif
|
||||||
typedef double DOUBLE;
|
typedef double DOUBLE;
|
||||||
|
|
||||||
/* Unsigned Types */
|
//
|
||||||
|
// Used to store a non-float 8 byte aligned structure
|
||||||
|
//
|
||||||
|
typedef struct _QUAD
|
||||||
|
{
|
||||||
|
_ANONYMOUS_UNION union
|
||||||
|
{
|
||||||
|
__GNU_EXTENSION __int64 UseThisFieldToCopy;
|
||||||
|
double DoNotUseThisField;
|
||||||
|
};
|
||||||
|
} QUAD, *PQUAD, UQUAD, *PUQUAD;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Unsigned Types
|
||||||
|
//
|
||||||
typedef unsigned char UCHAR, *PUCHAR;
|
typedef unsigned char UCHAR, *PUCHAR;
|
||||||
typedef unsigned short USHORT, *PUSHORT;
|
typedef unsigned short USHORT, *PUSHORT;
|
||||||
typedef unsigned long ULONG, *PULONG;
|
typedef unsigned long ULONG, *PULONG;
|
||||||
typedef CONST UCHAR *PCUCHAR;
|
typedef CONST UCHAR *PCUCHAR;
|
||||||
typedef CONST USHORT *PCUSHORT;
|
typedef CONST USHORT *PCUSHORT;
|
||||||
typedef CONST ULONG *PCULONG;
|
typedef CONST ULONG *PCULONG;
|
||||||
|
|
||||||
typedef UCHAR FCHAR;
|
typedef UCHAR FCHAR;
|
||||||
typedef USHORT FSHORT;
|
typedef USHORT FSHORT;
|
||||||
typedef ULONG FLONG;
|
typedef ULONG FLONG;
|
||||||
typedef UCHAR BOOLEAN, *PBOOLEAN;
|
typedef UCHAR BOOLEAN;
|
||||||
|
typedef BOOLEAN *PBOOLEAN;
|
||||||
|
|
||||||
typedef ULONG LOGICAL;
|
typedef ULONG LOGICAL;
|
||||||
typedef ULONG *PLOGICAL;
|
typedef ULONG *PLOGICAL;
|
||||||
|
|
||||||
/* Signed Types */
|
//
|
||||||
|
// Signed Types
|
||||||
|
//
|
||||||
typedef SHORT *PSHORT;
|
typedef SHORT *PSHORT;
|
||||||
typedef LONG *PLONG;
|
typedef LONG *PLONG;
|
||||||
|
|
||||||
typedef LONG NTSTATUS;
|
typedef LONG NTSTATUS;
|
||||||
typedef NTSTATUS *PNTSTATUS;
|
typedef NTSTATUS *PNTSTATUS;
|
||||||
|
|
||||||
typedef signed char SCHAR;
|
typedef signed char SCHAR;
|
||||||
typedef SCHAR *PSCHAR;
|
typedef SCHAR *PSCHAR;
|
||||||
|
|
||||||
|
@ -314,15 +401,22 @@ typedef SCHAR *PSCHAR;
|
||||||
typedef LONG HRESULT;
|
typedef LONG HRESULT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* 64-bit types */
|
//
|
||||||
|
// 64-bit types
|
||||||
|
//
|
||||||
__GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG;
|
__GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG;
|
||||||
__GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG;
|
__GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG;
|
||||||
typedef ULONGLONG DWORDLONG, *PDWORDLONG;
|
typedef ULONGLONG DWORDLONG, *PDWORDLONG;
|
||||||
|
|
||||||
/* Update Sequence Number */
|
//
|
||||||
|
// Update Sequence Number
|
||||||
|
//
|
||||||
typedef LONGLONG USN;
|
typedef LONGLONG USN;
|
||||||
|
|
||||||
/* ANSI (Multi-byte Character) types */
|
|
||||||
|
//
|
||||||
|
// ANSI (Multi-byte Character) types
|
||||||
|
//
|
||||||
typedef CHAR *PCHAR, *LPCH, *PCH;
|
typedef CHAR *PCHAR, *LPCH, *PCH;
|
||||||
typedef CONST CHAR *LPCCH, *PCCH;
|
typedef CONST CHAR *LPCCH, *PCCH;
|
||||||
typedef CHAR *NPSTR, *LPSTR, *PSTR;
|
typedef CHAR *NPSTR, *LPSTR, *PSTR;
|
||||||
|
@ -331,11 +425,15 @@ typedef CONST PSTR *PCZPSTR;
|
||||||
typedef CONST CHAR *LPCSTR, *PCSTR;
|
typedef CONST CHAR *LPCSTR, *PCSTR;
|
||||||
typedef PCSTR *PZPCSTR;
|
typedef PCSTR *PZPCSTR;
|
||||||
|
|
||||||
/* Pointer to an Asciiz string */
|
//
|
||||||
|
// Pointer to an Asciiz string
|
||||||
|
//
|
||||||
typedef CHAR *PSZ;
|
typedef CHAR *PSZ;
|
||||||
typedef CONST char *PCSZ;
|
typedef CONST char *PCSZ;
|
||||||
|
|
||||||
/* UNICODE (Wide Character) types */
|
//
|
||||||
|
// UNICODE (Wide Character) types
|
||||||
|
//
|
||||||
typedef wchar_t WCHAR;
|
typedef wchar_t WCHAR;
|
||||||
typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
|
typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
|
||||||
typedef CONST WCHAR *LPCWCH, *PCWCH;
|
typedef CONST WCHAR *LPCWCH, *PCWCH;
|
||||||
|
@ -347,27 +445,25 @@ typedef CONST WCHAR *LPCWSTR, *PCWSTR;
|
||||||
typedef PCWSTR *PZPCWSTR;
|
typedef PCWSTR *PZPCWSTR;
|
||||||
typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
|
typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
|
||||||
|
|
||||||
/* Cardinal Data Types */
|
//
|
||||||
|
// Cardinal Data Types
|
||||||
|
//
|
||||||
typedef char CCHAR, *PCCHAR;
|
typedef char CCHAR, *PCCHAR;
|
||||||
typedef short CSHORT, *PCSHORT;
|
typedef short CSHORT, *PCSHORT;
|
||||||
typedef ULONG CLONG, *PCLONG;
|
typedef ULONG CLONG, *PCLONG;
|
||||||
|
|
||||||
/* NLS basics (Locale and Language Ids) */
|
//
|
||||||
|
// NLS basics (Locale and Language Ids)
|
||||||
|
//
|
||||||
typedef ULONG LCID;
|
typedef ULONG LCID;
|
||||||
typedef PULONG PLCID;
|
typedef PULONG PLCID;
|
||||||
typedef USHORT LANGID;
|
typedef USHORT LANGID;
|
||||||
|
|
||||||
/* Used to store a non-float 8 byte aligned structure */
|
|
||||||
typedef struct _QUAD
|
|
||||||
{
|
|
||||||
_ANONYMOUS_UNION union
|
|
||||||
{
|
|
||||||
__GNU_EXTENSION __int64 UseThisFieldToCopy;
|
|
||||||
double DoNotUseThisField;
|
|
||||||
} DUMMYUNIONNAME;
|
|
||||||
} QUAD, *PQUAD, UQUAD, *PUQUAD;
|
|
||||||
|
|
||||||
/* Large Integer Unions */
|
|
||||||
|
//
|
||||||
|
// Large Integer Unions
|
||||||
|
//
|
||||||
#if defined(MIDL_PASS)
|
#if defined(MIDL_PASS)
|
||||||
typedef struct _LARGE_INTEGER {
|
typedef struct _LARGE_INTEGER {
|
||||||
#else
|
#else
|
||||||
|
@ -382,7 +478,7 @@ typedef union _LARGE_INTEGER {
|
||||||
ULONG LowPart;
|
ULONG LowPart;
|
||||||
LONG HighPart;
|
LONG HighPart;
|
||||||
} u;
|
} u;
|
||||||
#endif /* MIDL_PASS */
|
#endif //MIDL_PASS
|
||||||
LONGLONG QuadPart;
|
LONGLONG QuadPart;
|
||||||
} LARGE_INTEGER, *PLARGE_INTEGER;
|
} LARGE_INTEGER, *PLARGE_INTEGER;
|
||||||
|
|
||||||
|
@ -400,26 +496,40 @@ typedef union _ULARGE_INTEGER {
|
||||||
ULONG LowPart;
|
ULONG LowPart;
|
||||||
ULONG HighPart;
|
ULONG HighPart;
|
||||||
} u;
|
} u;
|
||||||
#endif /* MIDL_PASS */
|
#endif //MIDL_PASS
|
||||||
ULONGLONG QuadPart;
|
ULONGLONG QuadPart;
|
||||||
} ULARGE_INTEGER, *PULARGE_INTEGER;
|
} ULARGE_INTEGER, *PULARGE_INTEGER;
|
||||||
|
|
||||||
/* Physical Addresses are always treated as 64-bit wide */
|
//
|
||||||
|
// Physical Addresses are always treated as 64-bit wide
|
||||||
|
//
|
||||||
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
|
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
|
||||||
|
|
||||||
/* Locally Unique Identifier */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Locally Unique Identifier
|
||||||
|
//
|
||||||
typedef struct _LUID {
|
typedef struct _LUID {
|
||||||
ULONG LowPart;
|
ULONG LowPart;
|
||||||
LONG HighPart;
|
LONG HighPart;
|
||||||
} LUID, *PLUID;
|
} LUID, *PLUID;
|
||||||
|
|
||||||
/* Native API Return Value Macros */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Native API Return Value Macros
|
||||||
|
//
|
||||||
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
|
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
|
||||||
#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
|
#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
|
||||||
#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
|
#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
|
||||||
#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
|
#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
|
||||||
|
|
||||||
/* String Types */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// String Types
|
||||||
|
//
|
||||||
typedef struct _UNICODE_STRING {
|
typedef struct _UNICODE_STRING {
|
||||||
USHORT Length;
|
USHORT Length;
|
||||||
USHORT MaximumLength;
|
USHORT MaximumLength;
|
||||||
|
@ -465,7 +575,9 @@ typedef struct _STRING64 {
|
||||||
UNICODE_STRING64, *PUNICODE_STRING64,
|
UNICODE_STRING64, *PUNICODE_STRING64,
|
||||||
ANSI_STRING64, *PANSI_STRING64;
|
ANSI_STRING64, *PANSI_STRING64;
|
||||||
|
|
||||||
/* LangID and NLS */
|
//
|
||||||
|
// LangID and NLS
|
||||||
|
//
|
||||||
#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p))
|
#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p))
|
||||||
#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff)
|
#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff)
|
||||||
#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10)
|
#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10)
|
||||||
|
@ -482,7 +594,10 @@ typedef struct _STRING64 {
|
||||||
#define SORTVERSIONFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf))
|
#define SORTVERSIONFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf))
|
||||||
|
|
||||||
|
|
||||||
/* Object Attributes */
|
|
||||||
|
//
|
||||||
|
// Object Attributes
|
||||||
|
//
|
||||||
typedef struct _OBJECT_ATTRIBUTES {
|
typedef struct _OBJECT_ATTRIBUTES {
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
HANDLE RootDirectory;
|
HANDLE RootDirectory;
|
||||||
|
@ -493,7 +608,9 @@ typedef struct _OBJECT_ATTRIBUTES {
|
||||||
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
|
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
|
||||||
typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
|
typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
|
||||||
|
|
||||||
/* Values for the Attributes member */
|
//
|
||||||
|
// Values for the Attributes member
|
||||||
|
//
|
||||||
#define OBJ_INHERIT 0x00000002
|
#define OBJ_INHERIT 0x00000002
|
||||||
#define OBJ_PERMANENT 0x00000010
|
#define OBJ_PERMANENT 0x00000010
|
||||||
#define OBJ_EXCLUSIVE 0x00000020
|
#define OBJ_EXCLUSIVE 0x00000020
|
||||||
|
@ -504,7 +621,9 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
|
||||||
#define OBJ_FORCE_ACCESS_CHECK 0x00000400
|
#define OBJ_FORCE_ACCESS_CHECK 0x00000400
|
||||||
#define OBJ_VALID_ATTRIBUTES 0x000007F2
|
#define OBJ_VALID_ATTRIBUTES 0x000007F2
|
||||||
|
|
||||||
/* Helper Macro */
|
//
|
||||||
|
// Helper Macro
|
||||||
|
//
|
||||||
#define InitializeObjectAttributes(p,n,a,r,s) { \
|
#define InitializeObjectAttributes(p,n,a,r,s) { \
|
||||||
(p)->Length = sizeof(OBJECT_ATTRIBUTES); \
|
(p)->Length = sizeof(OBJECT_ATTRIBUTES); \
|
||||||
(p)->RootDirectory = (r); \
|
(p)->RootDirectory = (r); \
|
||||||
|
@ -514,29 +633,22 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
|
||||||
(p)->SecurityQualityOfService = NULL; \
|
(p)->SecurityQualityOfService = NULL; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Product Types */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Product Types
|
||||||
|
//
|
||||||
typedef enum _NT_PRODUCT_TYPE {
|
typedef enum _NT_PRODUCT_TYPE {
|
||||||
NtProductWinNt = 1,
|
NtProductWinNt = 1,
|
||||||
NtProductLanManNt,
|
NtProductLanManNt,
|
||||||
NtProductServer
|
NtProductServer
|
||||||
} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
|
} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
|
||||||
|
|
||||||
typedef enum _EVENT_TYPE {
|
|
||||||
NotificationEvent,
|
|
||||||
SynchronizationEvent
|
|
||||||
} EVENT_TYPE;
|
|
||||||
|
|
||||||
typedef enum _TIMER_TYPE {
|
|
||||||
NotificationTimer,
|
|
||||||
SynchronizationTimer
|
|
||||||
} TIMER_TYPE;
|
|
||||||
|
|
||||||
typedef enum _WAIT_TYPE {
|
//
|
||||||
WaitAll,
|
// Doubly Linked Lists
|
||||||
WaitAny
|
//
|
||||||
} WAIT_TYPE;
|
|
||||||
|
|
||||||
/* Doubly Linked Lists */
|
|
||||||
typedef struct _LIST_ENTRY {
|
typedef struct _LIST_ENTRY {
|
||||||
struct _LIST_ENTRY *Flink;
|
struct _LIST_ENTRY *Flink;
|
||||||
struct _LIST_ENTRY *Blink;
|
struct _LIST_ENTRY *Blink;
|
||||||
|
@ -554,11 +666,14 @@ typedef struct LIST_ENTRY64
|
||||||
ULONGLONG Blink;
|
ULONGLONG Blink;
|
||||||
} LIST_ENTRY64, *PLIST_ENTRY64;
|
} LIST_ENTRY64, *PLIST_ENTRY64;
|
||||||
|
|
||||||
/* Singly Linked Lists */
|
//
|
||||||
|
// Singly Linked Lists
|
||||||
|
//
|
||||||
typedef struct _SINGLE_LIST_ENTRY {
|
typedef struct _SINGLE_LIST_ENTRY {
|
||||||
struct _SINGLE_LIST_ENTRY *Next;
|
struct _SINGLE_LIST_ENTRY *Next;
|
||||||
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _PROCESSOR_NUMBER {
|
typedef struct _PROCESSOR_NUMBER {
|
||||||
USHORT Group;
|
USHORT Group;
|
||||||
UCHAR Number;
|
UCHAR Number;
|
||||||
|
@ -566,19 +681,16 @@ typedef struct _PROCESSOR_NUMBER {
|
||||||
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
|
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
|
||||||
|
|
||||||
typedef EXCEPTION_DISPOSITION
|
typedef EXCEPTION_DISPOSITION
|
||||||
(NTAPI *PEXCEPTION_ROUTINE)(
|
(DDKAPI *PEXCEPTION_ROUTINE)(
|
||||||
IN struct _EXCEPTION_RECORD *ExceptionRecord,
|
IN struct _EXCEPTION_RECORD *ExceptionRecord,
|
||||||
IN PVOID EstablisherFrame,
|
IN PVOID EstablisherFrame,
|
||||||
IN OUT struct _CONTEXT *ContextRecord,
|
IN OUT struct _CONTEXT *ContextRecord,
|
||||||
IN OUT PVOID DispatcherContext);
|
IN OUT PVOID DispatcherContext);
|
||||||
|
|
||||||
typedef struct _GROUP_AFFINITY {
|
|
||||||
KAFFINITY Mask;
|
|
||||||
USHORT Group;
|
|
||||||
USHORT Reserved[3];
|
|
||||||
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
|
||||||
|
|
||||||
/* Helper Macros */
|
//
|
||||||
|
// Helper Macros
|
||||||
|
//
|
||||||
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
|
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
|
||||||
|
|
||||||
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||||
|
@ -592,7 +704,11 @@ typedef struct _GROUP_AFFINITY {
|
||||||
#endif
|
#endif
|
||||||
#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
|
#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
|
||||||
|
|
||||||
/* Type Limits */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Type Limits
|
||||||
|
//
|
||||||
#define MINCHAR 0x80
|
#define MINCHAR 0x80
|
||||||
#define MAXCHAR 0x7f
|
#define MAXCHAR 0x7f
|
||||||
#define MINSHORT 0x8000
|
#define MINSHORT 0x8000
|
||||||
|
@ -604,17 +720,29 @@ typedef struct _GROUP_AFFINITY {
|
||||||
#define MAXULONG 0xffffffff
|
#define MAXULONG 0xffffffff
|
||||||
#define MAXLONGLONG (0x7fffffffffffffffLL)
|
#define MAXLONGLONG (0x7fffffffffffffffLL)
|
||||||
|
|
||||||
/* Multiplication and Shift Operations */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Multiplication and Shift Operations
|
||||||
|
//
|
||||||
#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
|
#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
|
||||||
#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
|
#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
|
||||||
#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
|
#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
|
||||||
#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
|
#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
|
||||||
#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
|
#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
|
||||||
|
|
||||||
/* C_ASSERT Definition */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// C_ASSERT Definition
|
||||||
|
//
|
||||||
#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
|
#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
|
||||||
|
|
||||||
/* Primary language IDs. */
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Primary language IDs.
|
||||||
|
//
|
||||||
#define LANG_NEUTRAL 0x00
|
#define LANG_NEUTRAL 0x00
|
||||||
#define LANG_INVARIANT 0x7f
|
#define LANG_INVARIANT 0x7f
|
||||||
|
|
||||||
|
@ -745,4 +873,6 @@ typedef struct _GROUP_AFFINITY {
|
||||||
#define LANG_YORUBA 0x6a
|
#define LANG_YORUBA 0x6a
|
||||||
#define LANG_ZULU 0x35
|
#define LANG_ZULU 0x35
|
||||||
|
|
||||||
#endif /* _NTDEF_ */
|
|
||||||
|
|
||||||
|
#endif /* _NTDEF_H */
|
||||||
|
|
|
@ -3411,12 +3411,6 @@ typedef LONG
|
||||||
struct _EXCEPTION_POINTERS *ExceptionInfo
|
struct _EXCEPTION_POINTERS *ExceptionInfo
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef struct _GROUP_AFFINITY {
|
|
||||||
KAFFINITY Mask;
|
|
||||||
WORD Group;
|
|
||||||
WORD Reserved[3];
|
|
||||||
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
|
||||||
|
|
||||||
typedef struct _EVENTLOGRECORD {
|
typedef struct _EVENTLOGRECORD {
|
||||||
DWORD Length;
|
DWORD Length;
|
||||||
DWORD Reserved;
|
DWORD Reserved;
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
/* DDK/IFS/NDK Headers */
|
/* DDK/IFS/NDK Headers */
|
||||||
#define _REALLY_GET_CALLERS_CALLER
|
#define _REALLY_GET_CALLERS_CALLER
|
||||||
|
#define SINGLE_GROUP_LEGACY_API
|
||||||
#include <excpt.h>
|
#include <excpt.h>
|
||||||
#include <ntdef.h>
|
#include <ntdef.h>
|
||||||
#include <ntifs.h>
|
#include <ntifs.h>
|
||||||
|
|
|
@ -48,7 +48,7 @@ MemType[] =
|
||||||
"LoaderXIPRom "
|
"LoaderXIPRom "
|
||||||
};
|
};
|
||||||
|
|
||||||
BOOLEAN Mm64BitPhysicalAddress = FALSE;
|
PBOOLEAN Mm64BitPhysicalAddress = FALSE;
|
||||||
ULONG MmReadClusterSize;
|
ULONG MmReadClusterSize;
|
||||||
//
|
//
|
||||||
// 0 | 1 is on/off paging, 2 is undocumented
|
// 0 | 1 is on/off paging, 2 is undocumented
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue