#include <ntdef.h>
#include <ntstatus.h>
#include <mce.h>
-
-/* FIXME
#include <bugcodes.h>
#include <ntiologc.h>
-*/
#include <stdarg.h> // FIXME
#include <basetyps.h> // FIXME
/******************************************************************************
* Executive Types *
******************************************************************************/
-
typedef struct _ZONE_SEGMENT_HEADER {
SINGLE_LIST_ENTRY SegmentList;
PVOID Reserved;
#define PROTECTED_POOL 0x80000000
-
/******************************************************************************
* I/O Manager Types *
******************************************************************************/
#define IO_ATTACH_DEVICE 0x0400
#define IO_IGNORE_SHARE_ACCESS_CHECK 0x0800
-typedef
-NTSTATUS
+typedef NTSTATUS
(NTAPI *PIO_QUERY_DEVICE_ROUTINE)(
IN PVOID Context,
IN PUNICODE_STRING PathName,
typedef struct _PCIX_BRIDGE_CAPABILITY {
PCI_CAPABILITIES_HEADER Header;
union {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT Bus64Bit:1;
USHORT Bus133MHzCapable:1;
USHORT SplitCompletionDiscarded:1;
USHORT AsUSHORT;
} SecondaryStatus;
union {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG FunctionNumber:3;
ULONG DeviceNumber:5;
ULONG BusNumber:8;
USHORT DownstreamSplitTransactionCapacity;
USHORT DownstreamSplitTransactionLimit;
union {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG SelectSecondaryRegisters:1;
ULONG ErrorPresentInOtherBank:1;
ULONG AdditionalCorrectableError:1;
typedef struct _PCI_ROOT_BUS_OSC_SUPPORT_FIELD {
union {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG ExtendedConfigOpRegions:1;
ULONG ActiveStatePowerManagement:1;
ULONG ClockPowerManagement:1;
typedef struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD {
union {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG ExpressNativeHotPlug:1;
ULONG ShpcNativeHotPlug:1;
ULONG ExpressNativePME:1;
typedef struct _PCI_ROOT_BUS_HARDWARE_CAPABILITY {
PCI_HARDWARE_INTERFACE SecondaryInterface;
- struct {
+ _ANONYMOUS_STRUCT struct {
BOOLEAN BusCapabilitiesFound;
ULONG CurrentSpeedAndMode;
ULONG SupportedSpeedsAndModes;
} PCI_ROOT_BUS_HARDWARE_CAPABILITY, *PPCI_ROOT_BUS_HARDWARE_CAPABILITY;
typedef union _PCI_EXPRESS_CAPABILITIES_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT CapabilityVersion:4;
USHORT DeviceType:4;
USHORT SlotImplemented:1;
} PCI_EXPRESS_CAPABILITIES_REGISTER, *PPCI_EXPRESS_CAPABILITIES_REGISTER;
typedef union _PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG MaxPayloadSizeSupported:3;
ULONG PhantomFunctionsSupported:2;
ULONG ExtendedTagSupported:1;
#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
typedef union _PCI_EXPRESS_DEVICE_CONTROL_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT CorrectableErrorEnable:1;
USHORT NonFatalErrorEnable:1;
USHORT FatalErrorEnable:1;
#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
typedef union _PCI_EXPRESS_DEVICE_STATUS_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT CorrectableErrorDetected:1;
USHORT NonFatalErrorDetected:1;
USHORT FatalErrorDetected:1;
} PCI_EXPRESS_DEVICE_STATUS_REGISTER, *PPCI_EXPRESS_DEVICE_STATUS_REGISTER;
typedef union _PCI_EXPRESS_LINK_CAPABILITIES_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG MaximumLinkSpeed:4;
ULONG MaximumLinkWidth:6;
ULONG ActiveStatePMSupport:2;
} PCI_EXPRESS_LINK_CAPABILITIES_REGISTER, *PPCI_EXPRESS_LINK_CAPABILITIES_REGISTER;
typedef union _PCI_EXPRESS_LINK_CONTROL_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT ActiveStatePMControl:2;
USHORT Rsvd1:1;
USHORT ReadCompletionBoundary:1;
} PCI_EXPRESS_LINK_CONTROL_REGISTER, *PPCI_EXPRESS_LINK_CONTROL_REGISTER;
typedef union _PCI_EXPRESS_LINK_STATUS_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT LinkSpeed:4;
USHORT LinkWidth:6;
USHORT Undefined:1;
} PCI_EXPRESS_LINK_STATUS_REGISTER, *PPCI_EXPRESS_LINK_STATUS_REGISTER;
typedef union _PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG AttentionButtonPresent:1;
ULONG PowerControllerPresent:1;
ULONG MRLSensorPresent:1;
} PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_SLOT_CAPABILITIES_REGISTER;
typedef union _PCI_EXPRESS_SLOT_CONTROL_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT AttentionButtonEnable:1;
USHORT PowerFaultDetectEnable:1;
USHORT MRLSensorEnable:1;
} PCI_EXPRESS_SLOT_CONTROL_REGISTER, *PPCI_EXPRESS_SLOT_CONTROL_REGISTER;
typedef union _PCI_EXPRESS_SLOT_STATUS_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT AttentionButtonPressed:1;
USHORT PowerFaultDetected:1;
USHORT MRLSensorChanged:1;
} PCI_EXPRESS_SLOT_STATUS_REGISTER, *PPCI_EXPRESS_SLOT_STATUS_REGISTER;
typedef union _PCI_EXPRESS_ROOT_CONTROL_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT CorrectableSerrEnable:1;
USHORT NonFatalSerrEnable:1;
USHORT FatalSerrEnable:1;
} PCI_EXPRESS_ROOT_CONTROL_REGISTER, *PPCI_EXPRESS_ROOT_CONTROL_REGISTER;
typedef union _PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT CRSSoftwareVisibility:1;
USHORT Rsvd:15;
} DUMMYSTRUCTNAME;
} PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_ROOT_CAPABILITIES_REGISTER;
typedef union _PCI_EXPRESS_ROOT_STATUS_REGISTER {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG PMERequestorId:16;
ULONG PMEStatus:1;
ULONG PMEPending:1;
} PCI_EXPRESS_MAX_PAYLOAD_SIZE;
typedef union _PCI_EXPRESS_PME_REQUESTOR_ID {
- struct {
+ _ANONYMOUS_STRUCT struct {
USHORT FunctionNumber:3;
USHORT DeviceNumber:5;
USHORT BusNumber:8;
USHORT AsUSHORT;
} PCI_EXPRESS_PME_REQUESTOR_ID, *PPCI_EXPRESS_PME_REQUESTOR_ID;
-#if defined(_WIN64)
-
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
-
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
-
-#endif /* defined(_WIN64) */
-
typedef enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE {
ResourceTypeSingle = 0,
ResourceTypeRange,
#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX 0x00004000
#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX 0x00008000
#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
- (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
- FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
+ (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
+ FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-#define FILE_CHARACTERISTICS_PROPAGATED ( FILE_REMOVABLE_MEDIA | \
- FILE_READ_ONLY_DEVICE | \
- FILE_FLOPPY_DISKETTE | \
- FILE_WRITE_ONCE_MEDIA | \
- FILE_DEVICE_SECURE_OPEN )
+#define FILE_CHARACTERISTICS_PROPAGATED (FILE_REMOVABLE_MEDIA | \
+ FILE_READ_ONLY_DEVICE | \
+ FILE_FLOPPY_DISKETTE | \
+ FILE_WRITE_ONCE_MEDIA | \
+ FILE_DEVICE_SECURE_OPEN)
typedef struct _FILE_ALIGNMENT_INFORMATION {
ULONG AlignmentRequirement;
MaximumBusDataType
} BUS_DATA_TYPE, *PBUS_DATA_TYPE;
+/* Some Server 2003 DDK definitions */
+#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1
+
+typedef NTSTATUS
+(NTAPI *PLEGACY_DEVICE_DETECTION_HANDLER)(
+ IN PVOID Context,
+ IN INTERFACE_TYPE LegacyBusType,
+ IN ULONG BusNumber,
+ IN ULONG SlotNumber,
+ OUT PDEVICE_OBJECT *PhysicalDeviceObject);
+
+typedef struct _ROUTING_TOKEN {
+ PVOID LinkNode;
+ ULONG StaticVector;
+ UCHAR Flags;
+} ROUTING_TOKEN, *PROUTING_TOKEN;
+
+typedef NTSTATUS
+(NTAPI *PGET_INTERRUPT_ROUTING)(
+ IN PDEVICE_OBJECT Pdo,
+ OUT ULONG *Bus,
+ OUT ULONG *PciSlot,
+ OUT UCHAR *InterruptLine,
+ OUT UCHAR *InterruptPin,
+ OUT UCHAR *ClassCode,
+ OUT UCHAR *SubClassCode,
+ OUT PDEVICE_OBJECT *ParentPdo,
+ OUT ROUTING_TOKEN *RoutingToken,
+ OUT UCHAR *Flags);
+
+typedef NTSTATUS
+(NTAPI *PSET_INTERRUPT_ROUTING_TOKEN)(
+ IN PDEVICE_OBJECT Pdo,
+ IN PROUTING_TOKEN RoutingToken);
+
+typedef VOID
+(NTAPI *PUPDATE_INTERRUPT_LINE)(
+ IN PDEVICE_OBJECT Pdo,
+ IN UCHAR LineRegister);
+
+typedef struct _INT_ROUTE_INTERFACE_STANDARD {
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PGET_INTERRUPT_ROUTING GetInterruptRouting;
+ PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken;
+ PUPDATE_INTERRUPT_LINE UpdateInterruptLine;
+} INT_ROUTE_INTERFACE_STANDARD, *PINT_ROUTE_INTERFACE_STANDARD;
+
+typedef struct _LEGACY_DEVICE_DETECTION_INTERFACE {
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection;
+} LEGACY_DEVICE_DETECTION_INTERFACE, *PLEGACY_DEVICE_DETECTION_INTERFACE;
+
+/* FIXME : These definitions don't exist in public headers */
+
+#define PCI_CB_INTRF_VERSION 1
+#define PCI_PME_INTRF_STANDARD_VER 1
+#define PNP_LOCATION_INTERFACE_VERSION 1
+
+DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85);
+DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b);
+
+typedef NTSTATUS
+(NTAPI *PCARDBUSADD)(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN OUT PVOID *DeviceContext);
+
+typedef NTSTATUS
+(NTAPI *PCARDBUSDELETE)(
+ IN PVOID DeviceContext);
+
+typedef NTSTATUS
+(NTAPI *PCARDBUSPCIDISPATCH)(
+ IN PVOID DeviceContext,
+ IN PIRP Irp);
+
+typedef VOID
+(NTAPI *PPME_SET_PME_ENABLE)(
+ IN PDEVICE_OBJECT Pdo,
+ IN BOOLEAN PmeEnable);
+
+typedef VOID
+(NTAPI *PPME_CLEAR_PME_STATUS)(
+ IN PDEVICE_OBJECT Pdo);
+
+typedef VOID
+(NTAPI *PPME_GET_INFORMATION)(
+ IN PDEVICE_OBJECT Pdo,
+ OUT PBOOLEAN PmeCapable,
+ OUT PBOOLEAN PmeStatus,
+ OUT PBOOLEAN PmeEnable);
+
+typedef struct _PCI_CARDBUS_INTERFACE_PRIVATE {
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PDRIVER_OBJECT DriverObject;
+ PCARDBUSADD AddCardBus;
+ PCARDBUSDELETE DeleteCardBus;
+ PCARDBUSPCIDISPATCH DispatchPnp;
+} PCI_CARDBUS_INTERFACE_PRIVATE, *PPCI_CARDBUS_INTERFACE_PRIVATE;
+
+typedef struct _PCI_PME_INTERFACE {
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PPME_GET_INFORMATION GetPmeInformation;
+ PPME_CLEAR_PME_STATUS ClearPmeStatus;
+ PPME_SET_PME_ENABLE UpdateEnable;
+} PCI_PME_INTERFACE, *PPCI_PME_INTERFACE;
+
/* Hardware Abstraction Layer Types */
typedef BOOLEAN
#define NX_SUPPORT_POLICY_OPTOUT 3
typedef VOID
-(NTAPI *PEXPAND_STACK_CALLOUT)(
+(NTAPI EXPAND_STACK_CALLOUT)(
IN PVOID Parameter OPTIONAL);
+typedef EXPAND_STACK_CALLOUT *PEXPAND_STACK_CALLOUT;
typedef VOID
(NTAPI *PTIMER_APC_ROUTINE)(
typedef enum _TIMER_SET_INFORMATION_CLASS {
TimerSetCoalescableTimer,
- MaxTimerInfoClass
+ MaxTimerInfoClass
} TIMER_SET_INFORMATION_CLASS;
#if (NTDDI_VERSION >= NTDDI_WIN7)
ULONG NumberOfPhysicalPages;
BOOLEAN SafeBootMode;
#if (NTDDI_VERSION >= NTDDI_WIN7)
- union {
+ _ANONYMOUS_UNION union {
UCHAR TscQpcData;
- struct {
+ _ANONYMOUS_STRUCT struct {
UCHAR TscQpcEnabled:1;
UCHAR TscQpcSpareFlag:1;
UCHAR TscQpcShift:6;
UCHAR TscQpcPad[2];
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
- union {
+ _ANONYMOUS_UNION union {
ULONG SharedDataFlags;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG DbgErrorPortPresent:1;
ULONG DbgElevationEnabled:1;
ULONG DbgVirtEnabled:1;
typedef union _RATE_QUOTA_LIMIT {
ULONG RateData;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG RatePercent:7;
ULONG Reserved0:25;
} DUMMYSTRUCTNAME;
typedef struct _PS_CREATE_NOTIFY_INFO {
IN SIZE_T Size;
- union {
+ _ANONYMOUS_UNION union {
IN ULONG Flags;
- struct {
+ _ANONYMOUS_STRUCT struct {
IN ULONG FileOpenNameAvailable:1;
IN ULONG Reserved:31;
- };
- };
+ } DUMMYSTRUCTNAME;
+ } DUMMYUNIONNAME;
IN HANDLE ParentProcessId;
IN CLIENT_ID CreatingThreadId;
IN OUT struct _FILE_OBJECT *FileObject;
ULONG StackBase;
ULONG StackLimit;
ULONG SubSystemTib;
- __GNU_EXTENSION union {
+ _ANONYMOUS_UNION union {
ULONG FiberData;
ULONG Version;
- };
+ } DUMMYUNIONNAME;
ULONG ArbitraryUserPointer;
ULONG Self;
} NT_TIB32,*PNT_TIB32;
ULONG64 StackBase;
ULONG64 StackLimit;
ULONG64 SubSystemTib;
- __GNU_EXTENSION union {
+ _ANONYMOUS_UNION union {
ULONG64 FiberData;
ULONG Version;
- };
+ } DUMMYUNIONNAME;
ULONG64 ArbitraryUserPointer;
ULONG64 Self;
} NT_TIB64,*PNT_TIB64;
typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
SIZE_T Size;
PROCESS_BASIC_INFORMATION BasicInfo;
- union {
+ _ANONYMOUS_UNION union {
ULONG Flags;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG IsProtectedProcess:1;
ULONG IsWow64Process:1;
ULONG IsProcessDeleting:1;
} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;
typedef struct _PROCESS_DEVICEMAP_INFORMATION {
- __GNU_EXTENSION union {
+ _ANONYMOUS_UNION union {
struct {
HANDLE DirectoryHandle;
} Set;
ULONG DriveMap;
UCHAR DriveType[32];
} Query;
- };
+ } DUMMYUNIONNAME;
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX {
- union {
+ _ANONYMOUS_UNION union {
struct {
HANDLE DirectoryHandle;
} Set;
******************************************************************************/
-
#ifndef _RTL_RUN_ONCE_DEF
#define _RTL_RUN_ONCE_DEF
struct _RTL_AVL_TABLE;
typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
+(NTAPI RTL_AVL_COMPARE_ROUTINE) (
IN struct _RTL_AVL_TABLE *Table,
IN PVOID FirstStruct,
IN PVOID SecondStruct);
+typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
typedef PVOID
-(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
+(NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
IN struct _RTL_AVL_TABLE *Table,
IN CLONG ByteSize);
+typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
typedef VOID
-(NTAPI *PRTL_AVL_FREE_ROUTINE) (
+(NTAPI RTL_AVL_FREE_ROUTINE) (
IN struct _RTL_AVL_TABLE *Table,
IN PVOID Buffer);
+typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
typedef NTSTATUS
-(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
+(NTAPI RTL_AVL_MATCH_FUNCTION) (
IN struct _RTL_AVL_TABLE *Table,
IN PVOID UserData,
IN PVOID MatchData);
+typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
typedef struct _RTL_BALANCED_LINKS {
struct _RTL_BALANCED_LINKS *Parent;
PVOID TableContext;
} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
+typedef struct _RTL_SPLAY_LINKS {
+ struct _RTL_SPLAY_LINKS *Parent;
+ struct _RTL_SPLAY_LINKS *LeftChild;
+ struct _RTL_SPLAY_LINKS *RightChild;
+} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
+
#ifndef RTL_USE_AVL_TABLES
struct _RTL_GENERIC_TABLE;
typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
+(NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
IN struct _RTL_GENERIC_TABLE *Table,
IN PVOID FirstStruct,
IN PVOID SecondStruct);
+typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
typedef PVOID
-(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
+(NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
IN struct _RTL_GENERIC_TABLE *Table,
IN CLONG ByteSize);
+typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
typedef VOID
-(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
+(NTAPI RTL_GENERIC_FREE_ROUTINE) (
IN struct _RTL_GENERIC_TABLE *Table,
IN PVOID Buffer);
-
-typedef struct _RTL_SPLAY_LINKS {
- struct _RTL_SPLAY_LINKS *Parent;
- struct _RTL_SPLAY_LINKS *LeftChild;
- struct _RTL_SPLAY_LINKS *RightChild;
-} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
+typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
typedef struct _RTL_GENERIC_TABLE {
PRTL_SPLAY_LINKS TableRoot;
#ifdef RTL_USE_AVL_TABLES
+#undef RTL_GENERIC_COMPARE_ROUTINE
#undef PRTL_GENERIC_COMPARE_ROUTINE
-#undef RTL_GENERIC_COMPARE_ROUTINE
+#undef RTL_GENERIC_ALLOCATE_ROUTINE
#undef PRTL_GENERIC_ALLOCATE_ROUTINE
-#undef RTL_GENERIC_ALLOCATE_ROUTINE
+#undef RTL_GENERIC_FREE_ROUTINE
#undef PRTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_TABLE
+#undef RTL_GENERIC_TABLE
#undef PRTL_GENERIC_TABLE
-#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
-#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
-#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
-#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
-#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_TABLE RTL_AVL_TABLE
-#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
+#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
+#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
+#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
+#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
+#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
+#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
+#define RTL_GENERIC_TABLE RTL_AVL_TABLE
+#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
#endif /* RTL_USE_AVL_TABLES */
WinThisOrganizationCertificateSid = 82,
} WELL_KNOWN_SID_TYPE;
-
-
#if defined(_M_IX86)
#define PAUSE_PROCESSOR YieldProcessor();
ULONG64 LastExceptionFromRip;
} CONTEXT;
+#define PCR_MINOR_VERSION 1
+#define PCR_MAJOR_VERSION 1
+
typedef struct _KPCR
{
_ANONYMOUS_UNION union
#define PDE_TOP 0xFFFFF6FB7FFFFFFFULL
#define PTE_TOP 0xFFFFF6FFFFFFFFFFULL
+extern NTKERNELAPI PVOID MmHighestUserAddress;
+extern NTKERNELAPI PVOID MmSystemRangeStart;
+extern NTKERNELAPI ULONG64 MmUserProbeAddress;
+
#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
#define MM_SYSTEM_RANGE_START MmSystemRangeStart
#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
-#define KI_USER_SHARED_DATA 0xFFFFF78000000000ULL
#elif defined(_M_IA64)
/******************************************************************************
* Executive Functions *
******************************************************************************/
+
static __inline PVOID
ExAllocateFromZone(
IN PZONE_HEADER Zone)
#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
+#ifndef _M_IX86
+#define RESULT_ZERO 0
+#define RESULT_NEGATIVE 1
+#define RESULT_POSITIVE 2
+#endif
+
typedef enum _INTERLOCKED_RESULT {
ResultNegative = RESULT_NEGATIVE,
ResultZero = RESULT_ZERO,
} INTERLOCKED_RESULT;
#ifdef _X86_
+
NTKERNELAPI
INTERLOCKED_RESULT
FASTCALL
Exfi386InterlockedExchangeUlong(
IN PULONG Target,
IN ULONG Value);
-#endif
+#endif
#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTAPI
ExRaiseDatatypeMisalignment(VOID);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
/* Hardware Abstraction Layer Functions */
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+/* Nothing here */
-#else
+#else /* USE_DMA_MACROS ... */
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
//DECLSPEC_DEPRECATED_DDK
NTHALAPI
VOID
IN ULONG NumberOfMapRegisters,
IN PDRIVER_CONTROL ExecutionRoutine);
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-
-#endif
-
+#endif /* USE_DMA_MACROS ... */
#if !defined(NO_LEGACY_DRIVERS)
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
NTHALAPI
NTSTATUS
NTAPI
NTAPI
HalMakeBeep(
IN ULONG Frequency);
-
-#endif
-
#endif /* !defined(NO_LEGACY_DRIVERS) */
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
NTHALAPI
PADAPTER_OBJECT
NTAPI
IN ULONG SectorSize,
IN ULONG MBRTypeIdentifier,
OUT PVOID *Buffer);
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_WIN7)
HalFreeHardwareCounters(
IN HANDLE CounterSetHandle);
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#if defined(_IA64_)
#if (NTDDI_VERSION >= NTDDI_WIN2K)
/******************************************************************************
* I/O Manager Functions *
******************************************************************************/
+
/*
* VOID IoAssignArcName(
* IN PUNICODE_STRING ArcName,
*/
#define IoDeassignArcName IoDeleteSymbolicLink
-VOID
FORCEINLINE
+VOID
NTAPI
IoInitializeDriverCreateContext(
PIO_DRIVER_CREATE_CONTEXT DriverContext)
DriverContext->Size = sizeof(IO_DRIVER_CREATE_CONTEXT);
}
-
-
#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
#if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
NTKERNELAPI
NTSTATUS
IN PVOID Context);
#endif
+#if !defined(DMA_MACROS_DEFINED)
//DECLSPEC_DEPRECATED_DDK
NTHALAPI
PHYSICAL_ADDRESS
IN PVOID CurrentVa,
IN OUT PULONG Length,
IN BOOLEAN WriteToDevice);
+#endif
NTKERNELAPI
VOID
IoSetThreadHardErrorMode(
IN BOOLEAN EnableHardErrors);
+
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
#endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
#if (NTDDI_VERSION >= NTDDI_WINXP)
+
NTKERNELAPI
NTSTATUS
FASTCALL
IN PDEVICE_OBJECT TargetDevice,
OUT PDEVICE_OBJECT *AttachedToDeviceObject);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_WS03)
NTKERNELAPI
IN PIRP Irp);
#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+
BOOLEAN
NTAPI
IoTranslateBusAddress(
IN PHYSICAL_ADDRESS BusAddress,
IN OUT PULONG AddressSpace,
OUT PPHYSICAL_ADDRESS TranslatedAddress);
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+struct _DISK_GEOMETRY_EX;
+
NTKERNELAPI
NTSTATUS
NTAPI
IoIsFileObjectIgnoringSharing(
IN PFILE_OBJECT FileObject);
-
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
#if (NTDDI_VERSION >= NTDDI_WIN7)
+
NTSTATUS
NTAPI
IoSetFileObjectIgnoreSharing(
IN PFILE_OBJECT FileObject);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
/******************************************************************************
* Kernel Debugger Functions *
******************************************************************************/
/******************************************************************************
* Kernel Functions *
******************************************************************************/
+
NTKERNELAPI
VOID
FASTCALL
IN PVOID BaseAddress,
IN ULONG Length);
-
#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
NTKERNELAPI
VOID
NTAPI
NTAPI
KeBugCheck(
IN ULONG BugCheckCode);
-
-
-
#if defined(SINGLE_GROUP_LEGACY_API)
KAFFINITY
NTAPI
KeQueryActiveProcessors(VOID);
-
#endif /* defined(SINGLE_GROUP_LEGACY_API) */
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_WINXP)
+
NTKERNELAPI
BOOLEAN
NTAPI
KeAreApcsDisabled(VOID);
-
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
#if (NTDDI_VERSION >= NTDDI_WS03)
+
+
NTKERNELAPI
BOOLEAN
NTAPI
KeInvalidateAllCaches(VOID);
-
-
#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+
NTKERNELAPI
NTSTATUS
NTAPI
VOID
NTAPI
KeLeaveGuardedRegion(VOID);
-
-
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
-
#if defined(SINGLE_GROUP_LEGACY_API)
+
NTKERNELAPI
ULONG
NTAPI
ULONG
NTAPI
KeQueryMaximumProcessorCount(VOID);
-
-#endif
+#endif /* SINGLE_GROUP_LEGACY_API */
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
#if (NTDDI_VERSION >= NTDDI_WIN7)
NTKERNELAPI
OUT PHARDWARE_COUNTER CounterArray,
IN ULONG MaximumCount,
OUT PULONG Count);
-
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
/******************************************************************************
* Memory manager Functions *
******************************************************************************/
#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
NTKERNELAPI
PPHYSICAL_MEMORY_RANGE
NTAPI
IN SIZE_T NumberOfBytes,
IN MEMORY_CACHING_TYPE CacheType);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAdvanceMdl(
- IN OUT PMDL Mdl,
- IN ULONG NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateMappingAddress(
- IN SIZE_T NumberOfBytes,
- IN ULONG PoolTag);
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeMappingAddress(
- IN PVOID BaseAddress,
- IN ULONG PoolTag);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmIsVerifierEnabled(
- OUT PULONG VerifierFlags);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesWithReservedMapping(
- IN PVOID MappingAddress,
- IN ULONG PoolTag,
- IN PMDL MemoryDescriptorList,
- IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmProtectMdlSystemAddress(
- IN PMDL MemoryDescriptorList,
- IN ULONG NewProtect);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapReservedMapping(
- IN PVOID BaseAddress,
- IN ULONG PoolTag,
- IN PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAddVerifierThunks(
- IN PVOID ThunkBuffer,
- IN ULONG ThunkBufferSize);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_WS03)
+
NTKERNELAPI
NTSTATUS
NTAPI
MmCreateMirror(VOID);
-#endif
-
+#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTSTATUS
IN MM_ROTATE_DIRECTION Direction,
IN PMM_ROTATE_COPY_CALLBACK_FUNCTION CopyFunction,
IN PVOID Context OPTIONAL);
-
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
/******************************************************************************
* Process Manager Functions *
OUT PULONG MinorVersion OPTIONAL,
OUT PULONG BuildNumber OPTIONAL,
OUT PUNICODE_STRING CSDVersion OPTIONAL);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
#if (NTDDI_VERSION >= NTDDI_WINXP)
NTKERNELAPI
NTAPI
PsGetProcessCreateTimeQuadPart(
IN PEPROCESS Process);
-
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_WS03)
* Runtime Library Functions *
******************************************************************************/
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
#ifndef RTL_USE_AVL_TABLES
IN ULONG Flags);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_WINXP)
+
NTSYSAPI
VOID
NTAPI
IN PRTL_AVL_TABLE Table);
-
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+
#if (NTDDI_VERSION >= NTDDI_VISTA)
OUT PULONG ReturnedProductType);
-
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
#if (NTDDI_VERSION >= NTDDI_WIN7)
IN PRTL_DYNAMIC_HASH_TABLE HashTable);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
******************************************************************************/
#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
NTKERNELAPI
BOOLEAN
NTAPI
IN LUID PrivilegeValue,
IN KPROCESSOR_MODE PreviousMode);
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
/******************************************************************************
* ZwXxx Functions *
******************************************************************************/
-
NTSYSAPI
NTSTATUS
NTAPI
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId OPTIONAL);
-
#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
NTSTATUS
NTAPI
ZwCancelTimer(
OUT PVOID OutputBuffer OPTIONAL,
IN ULONG OutputBufferLength);
-
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
IN OUT PVOID TimerSetInformation,
IN ULONG TimerSetInformationLength);
-
-
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
/* UNSORTED */
-#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType) \
- ((ConditionMask) = VerSetConditionMask((ConditionMask), \
- (TypeBitMask), (ComparisonType)))
+#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType) \
+ ((ConditionMask) = VerSetConditionMask((ConditionMask), \
+ (TypeBitMask), (ComparisonType)))
#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTSYSAPI
#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V 0x3
#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED \
- (1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V)
+ (1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V)
#define SHARED_GLOBAL_FLAGS_SPARE_V 0x4
#define SHARED_GLOBAL_FLAGS_SPARE \
- (1UL << SHARED_GLOBAL_FLAGS_SPARE_V)
+ (1UL << SHARED_GLOBAL_FLAGS_SPARE_V)
#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V 0x5
#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED \
- (1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V)
+ (1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V)
#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V 0x6
#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED \
- (1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V)
+ (1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V)
#define EX_INIT_BITS(Flags, Bit) \
- *((Flags)) |= (Bit) // Safe to use before concurrently accessible
+ *((Flags)) |= (Bit) // Safe to use before concurrently accessible
#define EX_TEST_SET_BIT(Flags, Bit) \
- InterlockedBitTestAndSet ((PLONG)(Flags), (Bit))
+ InterlockedBitTestAndSet ((PLONG)(Flags), (Bit))
#define EX_TEST_CLEAR_BIT(Flags, Bit) \
- InterlockedBitTestAndReset ((PLONG)(Flags), (Bit))
+ InterlockedBitTestAndReset ((PLONG)(Flags), (Bit))
#define PCCARD_MAP_ERROR 0x01
#define PCCARD_DEVICE_PCI 0x10
IN NTSTATUS Status);
#endif
-/* FIXME : These definitions below doesn't belong to NTDDK */
-
#ifdef __cplusplus
}
#endif