--- trunk/reactos/include/ntos/haltypes.h 2005-06-17 17:59:11 UTC (rev 16007)
+++ trunk/reactos/include/ntos/haltypes.h 2005-06-17 18:02:31 UTC (rev 16008)
@@ -390,7 +390,6 @@
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements;
} TRANSLATOR_INTERFACE, *PTRANSLATOR_INTERFACE;
-#endif /* __USE_W32API */
/* Hal dispatch table */
@@ -425,7 +424,7 @@
typedef BOOLEAN STDCALL_FUNC
(*PHAL_RESET_DISPLAY_PARAMETERS)(ULONG Columns, ULONG Rows);
-
+#endif /* __USE_W32API */
/* Control codes of HalDeviceControl function */
#define BCTL_EJECT 0x0001
#define BCTL_QUERY_DEVICE_ID 0x0002
@@ -449,7 +448,7 @@
BOOLEAN Removable;
} BCTL_DEVICE_CAPABILITIES, *PBCTL_DEVICE_CAPABILITIES;
-
+#ifndef __USE_W32API
typedef struct _DEVICE_CONTROL_CONTEXT
{
NTSTATUS Status;
@@ -605,8 +604,6 @@
} HAL_DISPATCH, *PHAL_DISPATCH;
-#ifndef __USE_W32API
-
#ifdef __NTOSKRNL__
extern HAL_DISPATCH EXPORTED HalDispatchTable;
#else
@@ -615,6 +612,7 @@
#endif /* !__USE_W32API */
+#ifndef __USE_W32API
#ifdef __NTOSKRNL__
#define HALDISPATCH (&HalDispatchTable)
#else
@@ -645,8 +643,6 @@
ULONG Version;
} HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
-#ifndef __USE_W32API
-
#ifdef __NTOSKRNL__
extern HAL_PRIVATE_DISPATCH EXPORTED HalPrivateDispatchTable;
#else
--- trunk/reactos/w32api/include/ddk/winddk.h 2005-06-17 17:59:11 UTC (rev 16007)
+++ trunk/reactos/w32api/include/ddk/winddk.h 2005-06-17 18:02:31 UTC (rev 16008)
@@ -168,6 +168,8 @@
typedef struct _COMPRESSED_DATA_INFO *PCOMPRESSED_DATA_INFO;
typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
+typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
+typedef struct _BUS_HANDLER *PBUS_HANDLER;
typedef struct _DRIVE_LAYOUT_INFORMATION *PDRIVE_LAYOUT_INFORMATION;
typedef struct _DRIVE_LAYOUT_INFORMATION_EX *PDRIVE_LAYOUT_INFORMATION_EX;
typedef struct _NAMED_PIPE_CREATE_PARAMETERS *PNAMED_PIPE_CREATE_PARAMETERS;
@@ -329,7 +331,6 @@
extern NTOSAPI POBJECT_TYPE SeTokenObjectType;
extern NTOSAPI CCHAR KeNumberProcessors;
-extern NTOSAPI PHAL_DISPATCH_TABLE HalDispatchTable;
extern NTOSAPI PHAL_PRIVATE_DISPATCH_TABLE HalPrivateDispatchTable;
@@ -2080,6 +2081,69 @@
ULONG Flags;
} ARBITER_INTERFACE, *PARBITER_INTERFACE;
+typedef enum _HAL_QUERY_INFORMATION_CLASS {
+ HalInstalledBusInformation,
+ HalProfileSourceInformation,
+ HalInformationClassUnused1,
+ HalPowerInformation,
+ HalProcessorSpeedInformation,
+ HalCallbackInformation,
+ HalMapRegisterInformation,
+ HalMcaLogInformation,
+ HalFrameBufferCachingInformation,
+ HalDisplayBiosInformation,
+ HalProcessorFeatureInformation,
+ HalNumaTopologyInterface,
+ HalErrorInformation,
+ HalCmcLogInformation,
+ HalCpeLogInformation,
+ HalQueryMcaInterface,
+ HalQueryAMLIIllegalIOPortAddresses,
+ HalQueryMaxHotPlugMemoryAddress,
+ HalPartitionIpiInterface,
+ HalPlatformInformation,
+ HalQueryProfileSourceList
+} HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS;
+
+typedef enum _HAL_SET_INFORMATION_CLASS {
+ HalProfileSourceInterval,
+ HalProfileSourceInterruptHandler,
+ HalMcaRegisterDriver,
+ HalKernelErrorHandler,
+ HalCmcRegisterDriver,
+ HalCpeRegisterDriver,
+ HalMcaLog,
+ HalCmcLog,
+ HalCpeLog,
+ HalGenerateCmcInterrupt
+} HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
+
+/* Function Type Defintions for Dispatch Functions */
+
+typedef
+VOID
+(*PDEVICE_CONTROL_COMPLETION)(
+ IN struct _DEVICE_CONTROL_CONTEXT *ControlContext
+ );
+
+typedef struct _DEVICE_CONTROL_CONTEXT
+{
+ NTSTATUS Status;
+ PDEVICE_HANDLER_OBJECT DeviceHandler;
+ PDEVICE_OBJECT DeviceObject;
+ ULONG ControlCode;
+ PVOID Buffer;
+ PULONG BufferLength;
+ PVOID Context;
+} DEVICE_CONTROL_CONTEXT, *PDEVICE_CONTROL_CONTEXT;
+
+typedef struct _PM_DISPATCH_TABLE
+{
+ ULONG Signature;
+ ULONG Version;
+ PVOID Function[1];
+} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
+
typedef enum _RESOURCE_TRANSLATION_DIRECTION {
TranslateChildToParent,
TranslateParentToChild
@@ -2113,6 +2177,145 @@
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements;
} TRANSLATOR_INTERFACE, *PTRANSLATOR_INTERFACE;
+typedef NTSTATUS STDCALL
+(*pHalDeviceControl)(IN PDEVICE_HANDLER_OBJECT DeviceHandler,
+ IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG ControlCode,
+ IN OUT PVOID Buffer OPTIONAL,
+ IN OUT PULONG BufferLength OPTIONAL,
+ IN PVOID Context,
+ IN PDEVICE_CONTROL_COMPLETION CompletionRoutine);
+
+typedef VOID FASTCALL
+(*pHalExamineMBR)(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG MBRTypeIdentifier,
+ OUT PVOID *Buffer);
+
+typedef VOID FASTCALL
+(*pHalIoAssignDriveLetters)(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+ IN PSTRING NtDeviceName,
+ OUT PUCHAR NtSystemPath,
+ OUT PSTRING NtSystemPathString);
+
+typedef NTSTATUS FASTCALL
+(*pHalIoReadPartitionTable)(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN BOOLEAN ReturnRecognizedPartitions,
+ OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer);
+
+typedef NTSTATUS FASTCALL
+(*pHalIoSetPartitionInformation)(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG PartitionNumber,
+ IN ULONG PartitionType);
+
+typedef NTSTATUS FASTCALL
+(*pHalIoWritePartitionTable)(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG SectorsPerTrack,
+ IN ULONG NumberOfHeads,
+ IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer);
+
+typedef PBUS_HANDLER FASTCALL
+(*pHalHandlerForBus)(IN INTERFACE_TYPE InterfaceType,
+ IN ULONG BusNumber);
+
+typedef VOID FASTCALL
+(*pHalReferenceBusHandler)(IN PBUS_HANDLER BusHandler);
+
+typedef NTSTATUS STDCALL
+(*pHalQuerySystemInformation)(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
+ IN ULONG BufferSize,
+ IN OUT PVOID Buffer,
+ OUT PULONG ReturnedLength);
+
+
+typedef NTSTATUS STDCALL
+(*pHalSetSystemInformation)(IN HAL_SET_INFORMATION_CLASS InformationClass,
+ IN ULONG BufferSize,
+ IN PVOID Buffer);
+
+
+typedef NTSTATUS STDCALL
+(*pHalQueryBusSlots)(IN PBUS_HANDLER BusHandler,
+ IN ULONG BufferSize,
+ OUT PULONG SlotNumbers,
+ OUT PULONG ReturnedLength);
+
+typedef NTSTATUS STDCALL
+(*pHalInitPnpDriver)(VOID);
+
+typedef NTSTATUS STDCALL
+(*pHalInitPowerManagement)(IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
+ OUT PPM_DISPATCH_TABLE *PmHalDispatchTable);
+
+typedef struct _DMA_ADAPTER * STDCALL
+(*pHalGetDmaAdapter)(IN PVOID Context,
+ IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
+ OUT PULONG NumberOfMapRegisters);
+
+typedef NTSTATUS STDCALL
+(*pHalGetInterruptTranslator)(IN INTERFACE_TYPE ParentInterfaceType,
+ IN ULONG ParentBusNumber,
+ IN INTERFACE_TYPE BridgeInterfaceType,
+ IN USHORT Size,
+ IN USHORT Version,
+ OUT PTRANSLATOR_INTERFACE Translator,
+ OUT PULONG BridgeBusNumber);
+
+typedef NTSTATUS STDCALL (*pHalStartMirroring)(VOID);
+
+typedef NTSTATUS STDCALL (*pHalEndMirroring)(IN ULONG PassNumber);
+
+typedef NTSTATUS STDCALL
+(*pHalMirrorPhysicalMemory)(IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN LARGE_INTEGER NumberOfBytes);
+
+typedef NTSTATUS STDCALL
+(*pHalMirrorVerify)(IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN LARGE_INTEGER NumberOfBytes);
+
+typedef VOID STDCALL
+(*pHalEndOfBoot)(VOID);
+
+typedef BOOLEAN STDCALL
+(*PHAL_RESET_DISPLAY_PARAMETERS)(ULONG Columns, ULONG Rows);
+
+typedef struct {
+ ULONG Version;
+ pHalQuerySystemInformation HalQuerySystemInformation;
+ pHalSetSystemInformation HalSetSystemInformation;
+ pHalQueryBusSlots HalQueryBusSlots;
+ ULONG Spare1;
+ pHalExamineMBR HalExamineMBR;
+ pHalIoAssignDriveLetters HalIoAssignDriveLetters;
+ pHalIoReadPartitionTable HalIoReadPartitionTable;
+ pHalIoSetPartitionInformation HalIoSetPartitionInformation;
+ pHalIoWritePartitionTable HalIoWritePartitionTable;
+
+ pHalHandlerForBus HalReferenceHandlerForBus;
+ pHalReferenceBusHandler HalReferenceBusHandler;
+ pHalReferenceBusHandler HalDereferenceBusHandler;
+
+ pHalInitPnpDriver HalInitPnpDriver;
+ pHalInitPowerManagement HalInitPowerManagement;
+
+ pHalGetDmaAdapter HalGetDmaAdapter;
+ pHalGetInterruptTranslator HalGetInterruptTranslator;
+
+ pHalStartMirroring HalStartMirroring;
+ pHalEndMirroring HalEndMirroring;
+ pHalMirrorPhysicalMemory HalMirrorPhysicalMemory;
+ pHalEndOfBoot HalEndOfBoot;
+ pHalMirrorVerify HalMirrorVerify;
+
+} HAL_DISPATCH, *PHAL_DISPATCH;
+
+
+extern HAL_DISPATCH HalDispatchTable;
+#define HALDISPATCH HalDispatchTable
+
typedef enum _FILE_INFORMATION_CLASS {
FileDirectoryInformation = 1,
FileFullDirectoryInformation,