76 DPRINT1(
"HAL: Could not create ACPI device object status=0x%08x\n",
Status);
99 DPRINT1(
"You have an ACPI Watchdog. That's great! You should be proud ;-)\n");
115 DPRINT(
"HAL: PnP Driver ADD!\n");
169 IN PVOID InterfaceSpecificData,
189 ULONG i = 0, PdoCount = 0;
211 if (*DeviceRelations)
213 PdoCount += (*DeviceRelations)->Count;
225 FdoRelations->
Count = PdoCount;
228 ObjectEntry = FdoRelations->
Objects;
229 if (*DeviceRelations)
232 if ((*DeviceRelations)->Count)
238 *ObjectEntry++ = (*DeviceRelations)->Objects[
i];
240 while (++
i < (*DeviceRelations)->Count);
265 *DeviceRelations = FdoRelations;
282 PdoRelations->
Count = 1;
287 *DeviceRelations = PdoRelations;
400 PartialDesc =
ResourceList->List[0].PartialResourceList.PartialDescriptors;
417 PartialDesc->
u.
Interrupt.Affinity = 0xFFFFFFFF;
499 CurrentId =
L"ACPI_HAL\\PNP0C08";
503 CurrentId =
L"*PNP0C08";
510 CurrentId =
L"ACPI_HAL\\PNP0C18";
514 CurrentId =
L"*PNP0C18";
554 DPRINT(
"Returning: %S\n", *BusQueryId);
583 Id =
L"Root\\ACPI_HAL";
620 DPRINT(
"Returning: %S\n", *BusQueryId);
657 DPRINT(
"Querying device relations for FDO\n");
659 IoStackLocation->
Parameters.QueryDeviceRelations.Type,
666 DPRINT(
"Querying interface for FDO\n");
680 DPRINT(
"Querying ID for FDO\n");
689 DPRINT(
"Querying the capabilities for the FDO\n");
691 IoStackLocation->
Parameters.DeviceCapabilities.Capabilities);
718 DPRINT1(
"Start device received\n");
725 DPRINT1(
"Remove device received\n");
734 DPRINT1(
"Surprise removal IRP\n");
741 DPRINT(
"Querying PDO relations\n");
743 IoStackLocation->
Parameters.QueryDeviceRelations.Type,
750 DPRINT(
"Querying interface for PDO\n");
763 DPRINT(
"Querying the capabilities for the PDO\n");
765 IoStackLocation->
Parameters.DeviceCapabilities.Capabilities);
771 DPRINT(
"Querying the resources for the PDO\n");
778 DPRINT(
"Querying the resource requirements for the PDO\n");
786 DPRINT(
"Query the ID for the PDO\n");
827 DPRINT(
"HAL: PnP Driver Power!\n");
852 DPRINT(
"HAL: PnP Driver ENTRY!\n");
#define DO_DEVICE_INITIALIZING
NTSTATUS NTAPI HalpQueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID *InterfaceType, IN USHORT Version, IN PVOID InterfaceSpecificData, IN ULONG InterfaceBufferSize, IN PINTERFACE Interface, OUT PULONG Length)
NTSTATUS NTAPI IoSynchronousInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
NTSTATUS NTAPI HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject, IN BUS_QUERY_ID_TYPE IdType, OUT PUSHORT *BusQueryId)
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
IN PVOID IN PVOID IN USHORT Version
#define IRP_MN_QUERY_RESOURCES
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define IRP_MN_REMOVE_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
LONG InterfaceReferenceCount
NTSTATUS NTAPI PoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp)
PDEVICE_OBJECT PhysicalDeviceObject
PDRIVER_OBJECT HalpDriverObject
NTSTATUS NTAPI HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS
PDEVICE_OBJECT Objects[1]
PDEVICE_OBJECT PhysicalDeviceObject
PVOID NTAPI HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
struct _PDO_EXTENSION * Next
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
enum _EXTENSION_TYPE EXTENSION_TYPE
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT PdoDeviceObject
const MUI_LANGUAGE_RESOURCE ResourceList[]
NTSTATUS NTAPI HalpQueryResourceRequirements(IN PDEVICE_OBJECT DeviceObject, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@376 u
PDEVICE_OBJECT FunctionalDeviceObject
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSTATUS NTAPI HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject, IN INTERFACE_TYPE LegacyBusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PCM_RESOURCE_LIST ResourceList, IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL, IN BOOLEAN ResourceAssigned, IN OUT PDEVICE_OBJECT *DeviceObject OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define FILE_DEVICE_CONTROLLER
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
PDRIVER_EXTENSION DriverExtension
NTSTATUS NTAPI HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject, IN BUS_QUERY_ID_TYPE IdType, OUT PUSHORT *BusQueryId)
static PDRIVER_OBJECT DriverObject
#define IoCompleteRequest
NTSTATUS NTAPI HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ BUS_QUERY_ID_TYPE IdType
#define FILE_AUTOGENERATED_DEVICE_NAME
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
PFDO_EXTENSION ParentFdoExtension
#define IRP_MN_SURPRISE_REMOVAL
EXTENSION_TYPE ExtensionType
struct _PDO_EXTENSION * PPDO_EXTENSION
#define NT_SUCCESS(StatCode)
#define STATUS_NO_SUCH_DEVICE
PWCHAR HalHardwareIdString
PDEVICE_OBJECT AttachedDeviceObject
#define IRP_MN_START_DEVICE
#define IRP_MN_QUERY_INTERFACE
NTSTATUS NTAPI HalpDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID NTAPI IoRegisterBootDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _FDO_EXTENSION * PFDO_EXTENSION
EXTENSION_TYPE ExtensionType
IO_RESOURCE_DESCRIPTOR Descriptors[1]
PDESCRIPTION_HEADER WdTable
VOID NTAPI HalpReportDetectedDevices(IN PDRIVER_OBJECT DriverObject, IN PVOID Context, IN ULONG Count)
#define IRP_MJ_SYSTEM_CONTROL
IN PDEVICE_OBJECT DeviceObject
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
PDRIVER_ADD_DEVICE AddDevice
NTSTATUS NTAPI IoCreateDriver(IN PUNICODE_STRING DriverName OPTIONAL, IN PDRIVER_INITIALIZE InitializationFunction)
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
struct _PDO_EXTENSION * ChildPdoList
NTSTATUS NTAPI HalpQueryResources(IN PDEVICE_OBJECT DeviceObject, OUT PCM_RESOURCE_LIST *Resources)
NTSTATUS NTAPI HalpAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT TargetDevice)
#define FIELD_OFFSET(t, f)
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IoSkipCurrentIrpStackLocation(Irp)
#define CmResourceTypeInterrupt
NTSTATUS NTAPI HaliInitPnpDriver(VOID)
#define UNIMPLEMENTED_DBGBREAK(...)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
NTSTATUS NTAPI HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE RelationType, OUT PDEVICE_RELATIONS *DeviceRelations)
#define ObReferenceObject
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
struct tagContext Context
#define STATUS_NOT_SUPPORTED
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
_In_ PUNICODE_STRING RegistryPath
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@376::@379 Interrupt
#define ExFreePoolWithTag(_P, _T)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
IN BOOLEAN OUT PSTR Buffer
#define FILE_DEVICE_BUS_EXTENDER
struct _FDO_EXTENSION FDO_EXTENSION
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
struct _PDO_EXTENSION PDO_EXTENSION
NTSTATUS NTAPI HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_CAPABILITIES Capabilities)
#define IRP_MN_QUERY_CAPABILITIES
_In_ PSTORAGE_PROPERTY_ID _Outptr_ PSTORAGE_DESCRIPTOR_HEADER * Descriptor