[NTDDK]
authorAmine Khaldi <amine.khaldi@reactos.org>
Thu, 18 Mar 2010 00:36:45 +0000 (00:36 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Thu, 18 Mar 2010 00:36:45 +0000 (00:36 +0000)
- Group related definitions.
- Add missing NTAPI attribute to IoCreateFileSpecifyDeviceObjectHint and IoCreateFileEx.
- Fix a FIXME.
[SERIAL]
- Remove redundant IoAttachDeviceToDeviceStackSafe definition.
[MCE]
- Add mce.h definitions.

svn path=/branches/header-work/; revision=46256

drivers/serial/serial/serial.h
include/ddk/mce.h [new file with mode: 0644]
include/ddk/ntddk.h

index de94b29..b6ed661 100644 (file)
 #define PST_RS232 1
 #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
 {
   dsStopped,
diff --git a/include/ddk/mce.h b/include/ddk/mce.h
new file mode 100644 (file)
index 0000000..e2d8407
--- /dev/null
@@ -0,0 +1,1074 @@
+#pragma once
+
+#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
+
+typedef union _MCI_ADDR {
+  struct {
+    ULONG Address;
+    ULONG Reserved;
+  } DUMMYSTRUCTNAME;
+  ULONGLONG QuadPart;
+} MCI_ADDR, *PMCI_ADDR;
+
+typedef enum {
+  HAL_MCE_RECORD,
+  HAL_MCA_RECORD
+} MCA_EXCEPTION_TYPE;
+
+#if defined(_AMD64_)
+
+#if (NTDDI_VERSION <= NTDDI_WINXP)
+
+typedef union _MCI_STATS {
+  struct {
+    USHORT McaCod;
+    USHORT ModelErrorCode;
+    ULONG OtherInfo:25;
+    ULONG Damage:1;
+    ULONG AddressValid:1;
+    ULONG MiscValid:1;
+    ULONG Enabled:1;
+    ULONG Uncorrected:1;
+    ULONG OverFlow:1;
+    ULONG Valid:1;
+  } MciStatus;
+  ULONG64 QuadPart;
+} MCI_STATS, *PMCI_STATS;
+
+#else
+
+typedef union _MCI_STATS {
+  struct {
+    USHORT McaErrorCode;
+    USHORT ModelErrorCode;
+    ULONG OtherInformation:25;
+    ULONG ContextCorrupt:1;
+    ULONG AddressValid:1;
+    ULONG MiscValid:1;
+    ULONG ErrorEnabled:1;
+    ULONG UncorrectedError:1;
+    ULONG StatusOverFlow:1;
+    ULONG Valid:1;
+  } MciStatus;
+  ULONG64 QuadPart;
+} MCI_STATS, *PMCI_STATS;
+
+#endif /* (NTDDI_VERSION <= NTDDI_WINXP) */
+
+#endif /* defined(_AMD64_) */
+
+#if defined(_X86_)
+typedef union _MCI_STATS {
+  struct {
+    USHORT McaCod;
+    USHORT MsCod;
+    ULONG OtherInfo:25;
+    ULONG Damage:1;
+    ULONG AddressValid:1;
+    ULONG MiscValid:1;
+    ULONG Enabled:1;
+    ULONG UnCorrected:1;
+    ULONG OverFlow:1;
+    ULONG Valid:1;
+  } MciStats;
+  ULONGLONG QuadPart;
+} MCI_STATS, *PMCI_STATS;
+#endif
+
+#define MCA_EXTREG_V2MAX               24
+
+#if defined(_X86_) || defined(_AMD64_)
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+typedef struct _MCA_EXCEPTION {
+  ULONG VersionNumber;
+  MCA_EXCEPTION_TYPE ExceptionType;
+  LARGE_INTEGER TimeStamp;
+  ULONG ProcessorNumber;
+  ULONG Reserved1;
+  union {
+    struct {
+      UCHAR BankNumber;
+      UCHAR Reserved2[7];
+      MCI_STATS Status;
+      MCI_ADDR Address;
+      ULONGLONG Misc;
+    } Mca;
+    struct {
+      ULONGLONG Address;
+      ULONGLONG Type;
+    } Mce;
+  } u;
+  ULONG ExtCnt;
+  ULONG Reserved3;
+  ULONGLONG ExtReg[MCA_EXTREG_V2MAX];
+} MCA_EXCEPTION, *PMCA_EXCEPTION;
+
+#else
+
+typedef struct _MCA_EXCEPTION {
+  ULONG VersionNumber;
+  MCA_EXCEPTION_TYPE ExceptionType;
+  LARGE_INTEGER TimeStamp;
+  ULONG ProcessorNumber;
+  ULONG Reserved1;
+  union {
+    struct {
+      UCHAR BankNumber;
+      UCHAR Reserved2[7];
+      MCI_STATS Status;
+      MCI_ADDR Address;
+      ULONGLONG Misc;
+    } Mca;
+    struct {
+      ULONGLONG Address;
+      ULONGLONG Type;
+    } Mce;
+  } u;
+} MCA_EXCEPTION, *PMCA_EXCEPTION;
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+
+typedef MCA_EXCEPTION CMC_EXCEPTION, *PCMC_EXCEPTION;
+typedef MCA_EXCEPTION CPE_EXCEPTION, *PCPE_EXCEPTION;
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+#define MCA_EXCEPTION_V1_SIZE FIELD_OFFSET(MCA_EXCEPTION, ExtCnt)
+#define MCA_EXCEPTION_V2_SIZE sizeof(struct _MCA_EXCEPTION)
+#endif
+
+#endif /* defined(_X86_) || defined(_AMD64_) */
+
+#if defined(_AMD64_) || defined(_IA64_)
+
+typedef UCHAR ERROR_SEVERITY, *PERROR_SEVERITY;
+
+typedef enum _ERROR_SEVERITY_VALUE {
+  ErrorRecoverable = 0,
+  ErrorFatal = 1,
+  ErrorCorrected = 2,
+  ErrorOthers = 3,
+} ERROR_SEVERITY_VALUE;
+
+#endif
+
+#if defined(_IA64_)
+
+typedef union _ERROR_REVISION {
+  USHORT Revision;
+  struct {
+    UCHAR Minor;
+    UCHAR Major;
+  } DUMMYSTRUCTNAME;
+} ERROR_REVISION, *PERROR_REVISION;
+
+#if (NTDDI_VERSION > NTDDI_WINXP)
+#define ERROR_MAJOR_REVISION_SAL_03_00      0
+#define ERROR_MINOR_REVISION_SAL_03_00      2
+#define ERROR_REVISION_SAL_03_00 {ERROR_MINOR_REVISION_SAL_03_00,ERROR_MAJOR_REVISION_SAL_03_00}
+#define ERROR_FIXED_SECTION_REVISION {2,0}
+#else
+#define ERROR_REVISION_SAL_03_00 {2,0}
+#endif /* (NTDDI_VERSION > NTDDI_WINXP) */
+
+typedef union _ERROR_TIMESTAMP {
+  ULONGLONG TimeStamp;
+  struct {
+    UCHAR Seconds;
+    UCHAR Minutes;
+    UCHAR Hours;
+    UCHAR Reserved;
+    UCHAR Day;
+    UCHAR Month;
+    UCHAR Year;
+    UCHAR Century;
+  } DUMMYSTRUCTNAME;
+} ERROR_TIMESTAMP, *PERROR_TIMESTAMP;
+
+typedef struct _ERROR_GUID {
+  ULONG Data1;
+  USHORT Data2;
+  USHORT Data3;
+  UCHAR Data4[8];
+} ERROR_GUID, *PERROR_GUID;
+
+typedef ERROR_GUID            _ERROR_DEVICE_GUID;
+typedef _ERROR_DEVICE_GUID    ERROR_DEVICE_GUID, *PERROR_DEVICE_GUID;
+
+typedef ERROR_GUID            _ERROR_PLATFORM_GUID;
+typedef _ERROR_PLATFORM_GUID  ERROR_PLATFORM_GUID, *PERROR_PLATFORM_GUID;
+
+typedef union _ERROR_RECORD_VALID {
+  UCHAR Valid;
+  struct {
+    UCHAR OemPlatformID:1;
+    UCHAR Reserved:7;
+  } DUMMYSTRUCTNAME;
+} ERROR_RECORD_VALID, *PERROR_RECORD_VALID;
+
+typedef struct _ERROR_RECORD_HEADER {
+  ULONGLONG Id;
+  ERROR_REVISION Revision;
+  ERROR_SEVERITY ErrorSeverity;
+  ERROR_RECORD_VALID Valid;
+  ULONG Length;
+  ERROR_TIMESTAMP TimeStamp;
+  UCHAR OemPlatformId[16];
+} ERROR_RECORD_HEADER, *PERROR_RECORD_HEADER;
+
+typedef union _ERROR_RECOVERY_INFO {
+  UCHAR RecoveryInfo;
+  struct {
+    UCHAR Corrected:1;
+    UCHAR NotContained:1;
+    UCHAR Reset:1;
+    UCHAR Reserved:4;
+    UCHAR Valid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_RECOVERY_INFO, *PERROR_RECOVERY_INFO;
+
+typedef struct _ERROR_SECTION_HEADER {
+  ERROR_DEVICE_GUID Guid;
+  ERROR_REVISION Revision;
+  ERROR_RECOVERY_INFO RecoveryInfo;
+  UCHAR Reserved;
+  ULONG Length;
+} ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER;
+
+#if !defined(__midl) && defined(_MSC_EXTENSIONS)
+__inline
+USHORT
+NTAPI
+GetFwMceLogProcessorNumber(
+  PERROR_RECORD_HEADER Log)
+{
+  PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log));
+  USHORT lid = (USHORT)((UCHAR)(section->Reserved));
+  lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8);
+  return( lid );
+}
+#endif
+
+#define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_MODINFO_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG CheckInfo:1;
+    ULONGLONG RequestorIdentifier:1;
+    ULONGLONG ResponderIdentifier:1;
+    ULONGLONG TargetIdentifier:1;
+    ULONGLONG PreciseIP:1;
+    ULONGLONG Reserved:59;
+  } DUMMYSTRUCTNAME;
+} ERROR_MODINFO_VALID, *PERROR_MODINFO_VALID;
+
+typedef enum _ERROR_CHECK_IS {
+  isIA64 = 0,
+  isIA32 = 1,
+} ERROR_CHECK_IS;
+
+typedef enum _ERROR_CACHE_CHECK_OPERATION {
+  CacheUnknownOp = 0,
+  CacheLoad = 1,
+  CacheStore = 2,
+  CacheInstructionFetch = 3,
+  CacheDataPrefetch = 4,
+  CacheSnoop = 5,
+  CacheCastOut = 6,
+  CacheMoveIn = 7,
+} ERROR_CACHE_CHECK_OPERATION;
+
+typedef enum _ERROR_CACHE_CHECK_MESI {
+  CacheInvalid = 0,
+  CacheHeldShared = 1,
+  CacheHeldExclusive = 2,
+  CacheModified = 3,
+} ERROR_CACHE_CHECK_MESI;
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+typedef union _ERROR_CACHE_CHECK {
+  ULONGLONG CacheCheck;
+  struct {
+    ULONGLONG Operation:4;
+    ULONGLONG Level:2;
+    ULONGLONG Reserved1:2;
+    ULONGLONG DataLine:1;
+    ULONGLONG TagLine:1;
+    ULONGLONG DataCache:1;
+    ULONGLONG InstructionCache:1;
+    ULONGLONG MESI:3;
+    ULONGLONG MESIValid:1;
+    ULONGLONG Way:5;
+    ULONGLONG WayIndexValid:1;
+    ULONGLONG Reserved2:1;
+    ULONGLONG DP:1;
+    ULONGLONG Reserved3:8;
+    ULONGLONG Index:20;
+    ULONGLONG Reserved4:2;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
+
+# else
+
+typedef union _ERROR_CACHE_CHECK {
+  ULONGLONG CacheCheck;
+  struct {
+    ULONGLONG Operation:4;
+    ULONGLONG Level:2;
+    ULONGLONG Reserved1:2;
+    ULONGLONG DataLine:1;
+    ULONGLONG TagLine:1;
+    ULONGLONG DataCache:1;
+    ULONGLONG InstructionCache:1;
+    ULONGLONG MESI:3;
+    ULONGLONG MESIValid:1;
+    ULONGLONG Way:5;
+    ULONGLONG WayIndexValid:1;
+    ULONGLONG Reserved2:10;
+    ULONGLONG Index:20;
+    ULONGLONG Reserved3:2;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+
+typedef enum _ERROR_TLB_CHECK_OPERATION {
+  TlbUnknownOp = 0,
+  TlbAccessWithLoad = 1,
+  TlbAccessWithStore = 2,
+  TlbAccessWithInstructionFetch = 3,
+  TlbAccessWithDataPrefetch = 4,
+  TlbShootDown = 5,
+  TlbProbe = 6,
+  TlbVhptFill = 7,
+  TlbPurge = 8,
+} ERROR_TLB_CHECK_OPERATION;
+
+typedef union _ERROR_TLB_CHECK {
+  ULONGLONG TlbCheck;
+  struct {
+    ULONGLONG TRSlot:8;
+    ULONGLONG TRSlotValid:1;
+    ULONGLONG Reserved1:1;
+    ULONGLONG Level:2;
+    ULONGLONG Reserved2:4;
+    ULONGLONG DataTransReg:1;
+    ULONGLONG InstructionTransReg:1;
+    ULONGLONG DataTransCache:1;
+    ULONGLONG InstructionTransCache:1;
+    ULONGLONG Operation:4;
+    ULONGLONG Reserved3:30;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_TLB_CHECK, *PERROR_TLB_CHECK;
+
+typedef enum _ERROR_BUS_CHECK_OPERATION {
+  BusUnknownOp = 0,
+  BusPartialRead = 1,
+  BusPartialWrite = 2,
+  BusFullLineRead = 3,
+  BusFullLineWrite = 4,
+  BusWriteBack = 5,
+  BusSnoopProbe = 6,
+  BusIncomingPtcG = 7,
+  BusWriteCoalescing = 8,
+} ERROR_BUS_CHECK_OPERATION;
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+typedef union _ERROR_BUS_CHECK {
+  ULONGLONG BusCheck;
+  struct {
+    ULONGLONG Size:5;
+    ULONGLONG Internal:1;
+    ULONGLONG External:1;
+    ULONGLONG CacheTransfer:1;
+    ULONGLONG Type:8;
+    ULONGLONG Severity:5;
+    ULONGLONG Hierarchy:2;
+    ULONGLONG DP:1;
+    ULONGLONG Status:8;
+    ULONGLONG Reserved1:22;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
+
+#else
+
+typedef union _ERROR_BUS_CHECK {
+  ULONGLONG BusCheck;
+  struct {
+    ULONGLONG Size:5;
+    ULONGLONG Internal:1;
+    ULONGLONG External:1;
+    ULONGLONG CacheTransfer:1;
+    ULONGLONG Type:8;
+    ULONGLONG Severity:5;
+    ULONGLONG Hierarchy:2;
+    ULONGLONG Reserved1:1;
+    ULONGLONG Status:8;
+    ULONGLONG Reserved2:22;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
+
+#endif
+
+typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER {
+  RegFileUnknownId = 0,
+  GeneralRegisterBank1 = 1,
+  GeneralRegisterBank0 = 2,
+  FloatingPointRegister = 3,
+  BranchRegister = 4,
+  PredicateRegister = 5,
+  ApplicationRegister = 6,
+  ControlRegister = 7,
+  RegionRegister = 8,
+  ProtectionKeyRegister = 9,
+  DataBreakPointRegister = 10,
+  InstructionBreakPointRegister = 11,
+  PerformanceMonitorControlRegister = 12,
+  PerformanceMonitorDataRegister = 13,
+} ERROR_REGFILE_CHECK_IDENTIFIER;
+
+typedef enum _ERROR_REGFILE_CHECK_OPERATION {
+  RegFileUnknownOp = 0,
+  RegFileRead = 1,
+  RegFileWrite = 2,
+} ERROR_REGFILE_CHECK_OPERATION;
+
+typedef union _ERROR_REGFILE_CHECK {
+  ULONGLONG RegFileCheck;
+  struct {
+    ULONGLONG Identifier:4;
+    ULONGLONG Operation:4;
+    ULONGLONG RegisterNumber:7;
+    ULONGLONG RegisterNumberValid:1;
+    ULONGLONG Reserved1:38;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG Reserved2:3;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_REGFILE_CHECK, *PERROR_REGFILE_CHECK;
+
+#if (NTDDK_VERSION <= WINXP)
+typedef enum _ERROR_MS_CHECK_OPERATION {
+  MsUnknownOp = 0,
+  MsReadOrLoad = 1,
+  MsWriteOrStore = 2
+} ERROR_MS_CHECK_OPERATION;
+#else
+typedef enum _ERROR_MS_CHECK_OPERATION {
+  MsUnknownOp = 0,
+  MsReadOrLoad = 1,
+  MsWriteOrStore = 2,
+  MsOverTemperature = 3,
+  MsNormalTemperature = 4
+} ERROR_MS_CHECK_OPERATION;
+#endif
+
+typedef union _ERROR_MS_CHECK {
+  ULONGLONG MsCheck;
+  struct {
+    ULONGLONG StructureIdentifier:5;
+    ULONGLONG Level:3;
+    ULONGLONG ArrayId:4;
+    ULONGLONG Operation:4;
+    ULONGLONG Way:6;
+    ULONGLONG WayValid:1;
+    ULONGLONG IndexValid:1;
+    ULONGLONG Reserved1:8;
+    ULONGLONG Index:8;
+    ULONGLONG Reserved2:14;
+    ULONGLONG InstructionSet:1;
+    ULONGLONG InstructionSetValid:1;
+    ULONGLONG PrivilegeLevel:2;
+    ULONGLONG PrivilegeLevelValid:1;
+    ULONGLONG MachineCheckCorrected:1;
+    ULONGLONG TargetAddressValid:1;
+    ULONGLONG RequestIdValid:1;
+    ULONGLONG ResponderIdValid:1;
+    ULONGLONG PreciseIPValid:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_MS_CHECK, *PERROR_MS_CHECK;
+
+typedef union _ERROR_CHECK_INFO {
+  ULONGLONG CheckInfo;
+  ERROR_CACHE_CHECK CacheCheck;
+  ERROR_TLB_CHECK TlbCheck;
+  ERROR_BUS_CHECK BusCheck;
+  ERROR_REGFILE_CHECK RegFileCheck;
+  ERROR_MS_CHECK MsCheck;
+} ERROR_CHECK_INFO, *PERROR_CHECK_INFO;
+
+typedef struct _ERROR_MODINFO {
+  ERROR_MODINFO_VALID Valid;
+  ERROR_CHECK_INFO CheckInfo;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  ULONGLONG PreciseIP;
+} ERROR_MODINFO, *PERROR_MODINFO;
+
+typedef union _ERROR_PROCESSOR_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorMap:1;
+    ULONGLONG StateParameter:1;
+    ULONGLONG CRLid:1;
+    ULONGLONG StaticStruct:1;
+    ULONGLONG CacheCheckNum:4;
+    ULONGLONG TlbCheckNum:4;
+    ULONGLONG BusCheckNum:4;
+    ULONGLONG RegFileCheckNum:4;
+    ULONGLONG MsCheckNum:4;
+    ULONGLONG CpuIdInfo:1;
+    ULONGLONG Reserved:39;
+  } DUMMYSTRUCTNAME;
+} ERROR_PROCESSOR_VALID, *PERROR_PROCESSOR_VALID;
+
+typedef union _ERROR_PROCESSOR_ERROR_MAP {
+  ULONGLONG ErrorMap;
+  struct {
+    ULONGLONG   Cid:4;
+    ULONGLONG   Tid:4;
+    ULONGLONG   Eic:4;
+    ULONGLONG   Edc:4;
+    ULONGLONG   Eit:4;
+    ULONGLONG   Edt:4;
+    ULONGLONG   Ebh:4;
+    ULONGLONG   Erf:4;
+    ULONGLONG   Ems:16;
+    ULONGLONG   Reserved:16;
+  } DUMMYSTRUCTNAME;
+} ERROR_PROCESSOR_ERROR_MAP, *PERROR_PROCESSOR_ERROR_MAP;
+
+typedef ERROR_PROCESSOR_ERROR_MAP    _ERROR_PROCESSOR_LEVEL_INDEX;
+typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX, *PERROR_PROCESSOR_LEVEL_INDEX;
+
+typedef union _ERROR_PROCESSOR_STATE_PARAMETER {
+  ULONGLONG   StateParameter;
+  struct {
+    ULONGLONG reserved0:2;
+    ULONGLONG rz:1;
+    ULONGLONG ra:1;
+    ULONGLONG me:1;
+    ULONGLONG mn:1;
+    ULONGLONG sy:1;
+    ULONGLONG co:1;
+    ULONGLONG ci:1;
+    ULONGLONG us:1;
+    ULONGLONG hd:1;
+    ULONGLONG tl:1;
+    ULONGLONG mi:1;
+    ULONGLONG pi:1;
+    ULONGLONG pm:1;
+    ULONGLONG dy:1;
+    ULONGLONG in:1;
+    ULONGLONG rs:1;
+    ULONGLONG cm:1;
+    ULONGLONG ex:1;
+    ULONGLONG cr:1;
+    ULONGLONG pc:1;
+    ULONGLONG dr:1;
+    ULONGLONG tr:1;
+    ULONGLONG rr:1;
+    ULONGLONG ar:1;
+    ULONGLONG br:1;
+    ULONGLONG pr:1;
+    ULONGLONG fp:1;
+    ULONGLONG b1:1;
+    ULONGLONG b0:1;
+    ULONGLONG gr:1;
+    ULONGLONG dsize:16;
+    ULONGLONG reserved1:11;
+    ULONGLONG cc:1;
+    ULONGLONG tc:1;
+    ULONGLONG bc:1;
+    ULONGLONG rc:1;
+    ULONGLONG uc:1;
+  } DUMMYSTRUCTNAME;
+} ERROR_PROCESSOR_STATE_PARAMETER, *PERROR_PROCESSOR_STATE_PARAMETER;
+
+typedef union _PROCESSOR_LOCAL_ID {
+  ULONGLONG LocalId;
+  struct {
+    ULONGLONG reserved:16;
+    ULONGLONG eid:8;
+    ULONGLONG id:8;
+    ULONGLONG ignored:32;
+  } DUMMYSTRUCTNAME;
+} PROCESSOR_LOCAL_ID, *PPROCESSOR_LOCAL_ID;
+
+typedef struct _ERROR_PROCESSOR_MS {
+  ULONGLONG MsError[1];
+} ERROR_PROCESSOR_MS, *PERROR_PROCESSOR_MS;
+
+typedef struct _ERROR_PROCESSOR_CPUID_INFO {
+  ULONGLONG CpuId0;
+  ULONGLONG CpuId1;
+  ULONGLONG CpuId2;
+  ULONGLONG CpuId3;
+  ULONGLONG CpuId4;
+  ULONGLONG Reserved;
+} ERROR_PROCESSOR_CPUID_INFO, *PERROR_PROCESSOR_CPUID_INFO;
+
+typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG MinState:1;
+    ULONGLONG BR:1;
+    ULONGLONG CR:1;
+    ULONGLONG AR:1;
+    ULONGLONG RR:1;
+    ULONGLONG FR:1;
+    ULONGLONG Reserved:58;
+  } DUMMYSTRUCTNAME;
+} ERROR_PROCESSOR_STATIC_INFO_VALID, *PERROR_PROCESSOR_STATIC_INFO_VALID;
+
+typedef struct _ERROR_PROCESSOR_STATIC_INFO {
+  ERROR_PROCESSOR_STATIC_INFO_VALID Valid;
+  UCHAR MinState[1024];
+  ULONGLONG BR[8];
+  ULONGLONG CR[128];
+  ULONGLONG AR[128];
+  ULONGLONG RR[8];
+  ULONGLONG FR[2 * 128];
+} ERROR_PROCESSOR_STATIC_INFO, *PERROR_PROCESSOR_STATIC_INFO;
+
+typedef struct _ERROR_PROCESSOR {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PROCESSOR_VALID Valid;
+  ERROR_PROCESSOR_ERROR_MAP ErrorMap;
+  ERROR_PROCESSOR_STATE_PARAMETER StateParameter;
+  PROCESSOR_LOCAL_ID CRLid;
+} ERROR_PROCESSOR, *PERROR_PROCESSOR;
+
+#define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT         59
+#define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK          0x1
+#define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT           60
+#define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK            0x1
+#define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT           61
+#define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK            0x1
+#define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT           62
+#define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK            0x1
+#define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT     63
+#define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK      0x1
+
+#define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT       ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT
+#define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK        ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK
+
+typedef enum _ERR_TYPES {
+  ERR_INTERNAL = 1,
+  ERR_BUS = 16,
+  ERR_MEM = 4,
+  ERR_TLB = 5,
+  ERR_CACHE = 6,
+  ERR_FUNCTION = 7,
+  ERR_SELFTEST = 8,
+  ERR_FLOW = 9,
+  ERR_MAP = 17,
+  ERR_IMPROPER = 18,
+  ERR_UNIMPL = 19,
+  ERR_LOL = 20,
+  ERR_RESPONSE = 21,
+  ERR_PARITY = 22,
+  ERR_PROTOCOL = 23,
+  ERR_ERROR = 24,
+  ERR_TIMEOUT = 25,
+  ERR_POISONED = 26,
+} _ERR_TYPE;
+
+typedef union _ERROR_STATUS {
+  ULONGLONG Status;
+  struct {
+    ULONGLONG Reserved0:8;
+    ULONGLONG Type:8;
+    ULONGLONG Address:1;
+    ULONGLONG Control:1;
+    ULONGLONG Data:1;
+    ULONGLONG Responder:1;
+    ULONGLONG Requestor:1;
+    ULONGLONG FirstError:1;
+    ULONGLONG Overflow:1;
+    ULONGLONG Reserved1:41;
+  } DUMMYSTRUCTNAME;
+} ERROR_STATUS, *PERROR_STATUS;
+
+typedef struct _ERROR_OEM_DATA {
+  USHORT Length;
+} ERROR_OEM_DATA, *PERROR_OEM_DATA;
+
+typedef union _ERROR_BUS_SPECIFIC_DATA {
+  ULONGLONG BusSpecificData;
+  struct {
+    ULONGLONG LockAsserted:1;
+    ULONGLONG DeferLogged:1;
+    ULONGLONG IOQEmpty:1;
+    ULONGLONG DeferredTransaction:1;
+    ULONGLONG RetriedTransaction:1;
+    ULONGLONG MemoryClaimedTransaction:1;
+    ULONGLONG IOClaimedTransaction:1;
+    ULONGLONG ResponseParitySignal:1;
+    ULONGLONG DeferSignal:1;
+    ULONGLONG HitMSignal:1;
+    ULONGLONG HitSignal:1;
+    ULONGLONG RequestBusFirstCycle:6;
+    ULONGLONG RequestBusSecondCycle:6;
+    ULONGLONG AddressParityBusFirstCycle:2;
+    ULONGLONG AddressParityBusSecondCycle:2;
+    ULONGLONG ResponseBus:3;
+    ULONGLONG RequestParitySignalFirstCycle:1;
+    ULONGLONG RequestParitySignalSecondCycle:1;
+    ULONGLONG Reserved:32;
+  } DUMMYSTRUCTNAME;
+} ERROR_BUS_SPECIFIC_DATA, *PERROR_BUS_SPECIFIC_DATA;
+
+#define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_MEMORY_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG PhysicalAddress:1;
+    ULONGLONG AddressMask:1;
+    ULONGLONG Node:1;
+    ULONGLONG Card:1;
+    ULONGLONG Module:1;
+    ULONGLONG Bank:1;
+    ULONGLONG Device:1;
+    ULONGLONG Row:1;
+    ULONGLONG Column:1;
+    ULONGLONG BitPosition:1;
+    ULONGLONG RequestorId:1;
+    ULONGLONG ResponderId:1;
+    ULONGLONG TargetId:1;
+    ULONGLONG BusSpecificData:1;
+    ULONGLONG OemId:1;
+    ULONGLONG OemData:1;
+    ULONGLONG Reserved:47;
+  } DUMMYSTRUCTNAME;
+} ERROR_MEMORY_VALID, *PERROR_MEMORY_VALID;
+
+typedef struct _ERROR_MEMORY {
+  ERROR_SECTION_HEADER Header;
+  ERROR_MEMORY_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ULONGLONG PhysicalAddress;
+  ULONGLONG PhysicalAddressMask;
+  USHORT Node;
+  USHORT Card;
+  USHORT Module;
+  USHORT Bank;
+  USHORT Device;
+  USHORT Row;
+  USHORT Column;
+  USHORT BitPosition;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  ULONGLONG BusSpecificData;
+  UCHAR OemId[16];
+  ERROR_OEM_DATA OemData;
+} ERROR_MEMORY, *PERROR_MEMORY;
+
+#define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_PCI_BUS_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG ErrorType:1;
+    ULONGLONG Id:1;
+    ULONGLONG Address:1;
+    ULONGLONG Data:1;
+    ULONGLONG CmdType:1;
+    ULONGLONG RequestorId:1;
+    ULONGLONG ResponderId:1;
+    ULONGLONG TargetId:1;
+    ULONGLONG OemId:1;
+    ULONGLONG OemData:1;
+    ULONGLONG Reserved:53;
+  } DUMMYSTRUCTNAME;
+} ERROR_PCI_BUS_VALID, *PERROR_PCI_BUS_VALID;
+
+typedef struct _ERROR_PCI_BUS_TYPE {
+  UCHAR Type;
+  UCHAR Reserved;
+} ERROR_PCI_BUS_TYPE, *PERROR_PCI_BUS_TYPE;
+
+#define PciBusUnknownError       ((UCHAR)0)
+#define PciBusDataParityError    ((UCHAR)1)
+#define PciBusSystemError        ((UCHAR)2)
+#define PciBusMasterAbort        ((UCHAR)3)
+#define PciBusTimeOut            ((UCHAR)4)
+#define PciMasterDataParityError ((UCHAR)5)
+#define PciAddressParityError    ((UCHAR)6)
+#define PciCommandParityError    ((UCHAR)7)
+
+typedef struct _ERROR_PCI_BUS_ID {
+  UCHAR BusNumber;
+  UCHAR SegmentNumber;
+} ERROR_PCI_BUS_ID, *PERROR_PCI_BUS_ID;
+
+typedef struct _ERROR_PCI_BUS {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PCI_BUS_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ERROR_PCI_BUS_TYPE Type;
+  ERROR_PCI_BUS_ID Id;
+  UCHAR Reserved[4];
+  ULONGLONG Address;
+  ULONGLONG Data;
+  ULONGLONG CmdType;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  UCHAR OemId[16];
+  ERROR_OEM_DATA OemData;
+} ERROR_PCI_BUS, *PERROR_PCI_BUS;
+
+#define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_PCI_COMPONENT_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG Info:1;
+    ULONGLONG MemoryMappedRegistersPairs:1;
+    ULONGLONG ProgrammedIORegistersPairs:1;
+    ULONGLONG RegistersDataPairs:1;
+    ULONGLONG OemData:1;
+    ULONGLONG Reserved:58;
+  } DUMMYSTRUCTNAME;
+} ERROR_PCI_COMPONENT_VALID, *PERROR_PCI_COMPONENT_VALID;
+
+typedef struct _ERROR_PCI_COMPONENT_INFO {
+  USHORT VendorId;
+  USHORT DeviceId;
+  UCHAR ClassCodeInterface;
+  UCHAR ClassCodeSubClass;
+  UCHAR ClassCodeBaseClass;
+  UCHAR FunctionNumber;
+  UCHAR DeviceNumber;
+  UCHAR BusNumber;
+  UCHAR SegmentNumber;
+  UCHAR Reserved0;
+  ULONG Reserved1;
+} ERROR_PCI_COMPONENT_INFO, *PERROR_PCI_COMPONENT_INFO;
+
+typedef struct _ERROR_PCI_COMPONENT {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PCI_COMPONENT_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ERROR_PCI_COMPONENT_INFO Info;
+  ULONG MemoryMappedRegistersPairs;
+  ULONG ProgrammedIORegistersPairs;
+} ERROR_PCI_COMPONENT, *PERROR_PCI_COMPONENT;
+
+#define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_SYSTEM_EVENT_LOG_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG RecordId:1;
+    ULONGLONG RecordType:1;
+    ULONGLONG GeneratorId:1;
+    ULONGLONG EVMRev:1;
+    ULONGLONG SensorType:1;
+    ULONGLONG SensorNum:1;
+    ULONGLONG EventDirType:1;
+    ULONGLONG EventData1:1;
+    ULONGLONG EventData2:1;
+    ULONGLONG EventData3:1;
+    ULONGLONG Reserved:54;
+  } DUMMYSTRUCTNAME;
+} ERROR_SYSTEM_EVENT_LOG_VALID, *PSYSTEM_EVENT_LOG_VALID;
+
+typedef struct _ERROR_SYSTEM_EVENT_LOG {
+  ERROR_SECTION_HEADER Header;
+  ERROR_SYSTEM_EVENT_LOG_VALID Valid;
+  USHORT RecordId;
+  UCHAR RecordType;
+  ULONG TimeStamp;
+  USHORT GeneratorId;
+  UCHAR EVMRevision;
+  UCHAR SensorType;
+  UCHAR SensorNumber;
+  UCHAR EventDir;
+  UCHAR Data1;
+  UCHAR Data2;
+  UCHAR Data3;
+} ERROR_SYSTEM_EVENT_LOG, *PERROR_SYSTEM_EVENT_LOG;
+
+#define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_SMBIOS_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG EventType:1;
+    ULONGLONG Length:1;
+    ULONGLONG TimeStamp:1;
+    ULONGLONG OemData:1;
+    ULONGLONG Reserved:60;
+  } DUMMYSTRUCTNAME;
+} ERROR_SMBIOS_VALID, *PERROR_SMBIOS_VALID;
+
+typedef UCHAR ERROR_SMBIOS_EVENT_TYPE, *PERROR_SMBIOS_EVENT_TYPE;
+
+typedef struct _ERROR_SMBIOS {
+  ERROR_SECTION_HEADER Header;
+  ERROR_SMBIOS_VALID Valid;
+  ERROR_SMBIOS_EVENT_TYPE EventType;
+  UCHAR Length;
+  ERROR_TIMESTAMP TimeStamp;
+  ERROR_OEM_DATA OemData;
+} ERROR_SMBIOS, *PERROR_SMBIOS;
+
+#define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_PLATFORM_SPECIFIC_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG RequestorId:1;
+    ULONGLONG ResponderId:1;
+    ULONGLONG TargetId:1;
+    ULONGLONG BusSpecificData:1;
+    ULONGLONG OemId:1;
+    ULONGLONG OemData:1;
+    ULONGLONG OemDevicePath:1;
+    ULONGLONG Reserved:56;
+  } DUMMYSTRUCTNAME;
+} ERROR_PLATFORM_SPECIFIC_VALID, *PERROR_PLATFORM_SPECIFIC_VALID;
+
+typedef struct _ERROR_PLATFORM_SPECIFIC {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PLATFORM_SPECIFIC_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
+  UCHAR OemId[16];
+  ERROR_OEM_DATA OemData;
+} ERROR_PLATFORM_SPECIFIC, *PERROR_PLATFORM_SPECIFIC;
+
+#define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_PLATFORM_BUS_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG RequestorId:1;
+    ULONGLONG ResponderId:1;
+    ULONGLONG TargetId:1;
+    ULONGLONG BusSpecificData:1;
+    ULONGLONG OemId:1;
+    ULONGLONG OemData:1;
+    ULONGLONG OemDevicePath:1;
+    ULONGLONG Reserved:56;
+  } DUMMYSTRUCTNAME;
+} ERROR_PLATFORM_BUS_VALID, *PERROR_PLATFORM_BUS_VALID;
+
+typedef struct _ERROR_PLATFORM_BUS {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PLATFORM_BUS_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
+  UCHAR OemId[16];
+  ERROR_OEM_DATA OemData;
+} ERROR_PLATFORM_BUS, *PERROR_PLATFORM_BUS;
+
+#define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
+
+typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID {
+  ULONGLONG Valid;
+  struct {
+    ULONGLONG ErrorStatus:1;
+    ULONGLONG RequestorId:1;
+    ULONGLONG ResponderId:1;
+    ULONGLONG TargetId:1;
+    ULONGLONG BusSpecificData:1;
+    ULONGLONG OemId:1;
+    ULONGLONG OemData:1;
+    ULONGLONG OemDevicePath:1;
+    ULONGLONG Reserved:56;
+  } DUMMYSTRUCTNAME;
+} ERROR_PLATFORM_HOST_CONTROLLER_VALID, *PERROR_PLATFORM_HOST_CONTROLLER_VALID;
+
+typedef struct _ERROR_PLATFORM_HOST_CONTROLLER {
+  ERROR_SECTION_HEADER Header;
+  ERROR_PCI_COMPONENT_VALID Valid;
+  ERROR_STATUS ErrorStatus;
+  ULONGLONG RequestorId;
+  ULONGLONG ResponderId;
+  ULONGLONG TargetId;
+  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
+  UCHAR OemId[16];
+  ERROR_OEM_DATA OemData;
+} ERROR_PLATFORM_HOST_CONTROLLER, *PERROR_PLATFORM_HOST_CONTROLLER;
+
+typedef ERROR_RECORD_HEADER ERROR_LOGRECORD, *PERROR_LOGRECORD;
+typedef ERROR_RECORD_HEADER MCA_EXCEPTION, *PMCA_EXCEPTION;
+typedef ERROR_RECORD_HEADER CMC_EXCEPTION, *PCMC_EXCEPTION;
+typedef ERROR_RECORD_HEADER CPE_EXCEPTION, *PCPE_EXCEPTION;
+#if (NTDDI_VERSION > NTDDI_WINXP)
+typedef ERROR_RECORD_HEADER INIT_EXCEPTION, *PINIT_EXCEPTION;
+#endif
+
+#endif /* defined(_IA64_) */
+
+#endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */
index 6215349..2de71ad 100644 (file)
 extern "C" {
 #endif
 
+struct _LOADER_PARAMETER_BLOCK;
+struct _CREATE_DISK;
+struct _DRIVE_LAYOUT_INFORMATION_EX;
+struct _SET_PARTITION_INFORMATION_EX;
+
 typedef struct _BUS_HANDLER *PBUS_HANDLER;
 typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
 #if defined(_NTHAL_INCLUDED_)
@@ -86,9 +91,7 @@ extern NTSYSAPI CCHAR KeNumberProcessors;
 extern PCCHAR KeNumberProcessors;
 #endif
 
-/* FIXME
 #include <mce.h>
-*/
 
 #ifdef _X86_
 
@@ -3628,6 +3631,7 @@ IoWritePartitionTableEx(
 
 NTKERNELAPI
 NTSTATUS
+NTAPI
 IoCreateFileSpecifyDeviceObjectHint(
   OUT PHANDLE FileHandle,
   IN ACCESS_MASK DesiredAccess,
@@ -3691,6 +3695,7 @@ IoGetTransactionParameterBlock(
 
 NTKERNELAPI
 NTSTATUS
+NTAPI
 IoCreateFileEx(
   OUT PHANDLE FileHandle,
   IN ACCESS_MASK DesiredAccess,
@@ -4017,6 +4022,15 @@ typedef VOID
 (NTAPI *pHalSetPciErrorHandlerCallback)(
   IN PCI_ERROR_HANDLER_CALLBACK Callback);
 
+#if 1 /* Not present in WDK 7600 */
+typedef VOID
+(FASTCALL *pHalIoAssignDriveLetters)(
+  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+  IN PSTRING NtDeviceName,
+  OUT PUCHAR NtSystemPath,
+  OUT PSTRING NtSystemPathString);
+#endif
+
 typedef struct {
   ULONG Version;
   pHalQuerySystemInformation HalQuerySystemInformation;
@@ -4363,14 +4377,6 @@ typedef struct _PHYSICAL_COUNTER_RESOURCE_LIST {
 
 /* Hardware Abstraction Layer Functions */
 
-NTSTATUS
-NTAPI
-HalAllocateHardwareCounters(
-  IN PGROUP_AFFINITY GroupAffinty,
-  IN ULONG GroupCount,
-  IN PPHYSICAL_COUNTER_RESOURCE_LIST ResourceList,
-  OUT PHANDLE CounterSetHandle);
-
 NTSTATUS
 NTAPI
 HalFreeHardwareCounters(
@@ -4599,6 +4605,18 @@ HalExamineMBR(
   OUT PVOID *Buffer);
 #endif
 
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+NTSTATUS
+NTAPI
+HalAllocateHardwareCounters(
+  IN PGROUP_AFFINITY GroupAffinty,
+  IN ULONG GroupCount,
+  IN PPHYSICAL_COUNTER_RESOURCE_LIST ResourceList,
+  OUT PHANDLE CounterSetHandle);
+#endif
+
+
+
 #if defined(_IA64_)
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTHALAPI
@@ -4636,11 +4654,6 @@ HalBugCheckSystem(
 
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
-struct _LOADER_PARAMETER_BLOCK;
-struct _CREATE_DISK;
-struct _DRIVE_LAYOUT_INFORMATION_EX;
-struct _SET_PARTITION_INFORMATION_EX;
-
 //
 // GUID and UUID
 //
@@ -4692,15 +4705,6 @@ typedef BOOLEAN
   IN OUT PULONG_PTR Context,
   IN BOOLEAN NextBus);
 
-#if 1 /* Not present in WDK 7600 */
-typedef VOID
-(FASTCALL *pHalIoAssignDriveLetters)(
-  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
-  IN PSTRING NtDeviceName,
-  OUT PUCHAR NtSystemPath,
-  OUT PSTRING NtSystemPathString);
-#endif
-
 extern NTKERNELAPI PVOID MmHighestUserAddress;
 extern NTKERNELAPI PVOID MmSystemRangeStart;
 extern NTKERNELAPI ULONG MmUserProbeAddress;