65 DPRINT(
"HAL: PnP Driver ADD!\n");
115 DPRINT1(
"HAL: Could not create ACPI device object status=0x%08x\n",
Status);
138 DPRINT1(
"You have an ACPI Watchdog. That's great! You should be proud ;-)\n");
171 ULONG i = 0, PdoCount = 0;
193 if (*DeviceRelations)
195 PdoCount += (*DeviceRelations)->Count;
207 FdoRelations->
Count = PdoCount;
210 ObjectEntry = FdoRelations->
Objects;
211 if (*DeviceRelations)
214 if ((*DeviceRelations)->Count)
220 *ObjectEntry++ = (*DeviceRelations)->Objects[
i];
222 while (++
i < (*DeviceRelations)->Count);
247 *DeviceRelations = FdoRelations;
264 PdoRelations->
Count = 1;
269 *DeviceRelations = PdoRelations;
382 PartialDesc =
ResourceList->List[0].PartialResourceList.PartialDescriptors;
399 PartialDesc->
u.
Interrupt.Affinity = 0xFFFFFFFF;
481 CurrentId =
L"ACPI_HAL\\PNP0C08";
485 CurrentId =
L"*PNP0C08";
492 CurrentId =
L"ACPI_HAL\\PNP0C18";
496 CurrentId =
L"*PNP0C18";
536 DPRINT(
"Returning: %S\n", *BusQueryId);
598 DPRINT(
"Returning: %S\n", *BusQueryId);
635 DPRINT(
"Querying device relations for FDO\n");
637 IoStackLocation->
Parameters.QueryDeviceRelations.Type,
644 DPRINT(
"Querying interface for FDO\n");
658 DPRINT(
"Querying ID for FDO\n");
667 DPRINT(
"Querying the capabilities for the FDO\n");
669 IoStackLocation->
Parameters.DeviceCapabilities.Capabilities);
711 DPRINT1(
"Start device received\n");
718 DPRINT1(
"Remove device received\n");
727 DPRINT1(
"Surprise removal IRP\n");
734 DPRINT(
"Querying PDO relations\n");
736 IoStackLocation->
Parameters.QueryDeviceRelations.Type,
743 DPRINT(
"Querying interface for PDO\n");
756 DPRINT(
"Querying the capabilities for the PDO\n");
758 IoStackLocation->
Parameters.DeviceCapabilities.Capabilities);
764 DPRINT(
"Querying the resources for the PDO\n");
771 DPRINT(
"Querying the resource requirements for the PDO\n");
779 DPRINT(
"Query the ID for the PDO\n");
820 DPRINT(
"HAL: PnP Driver Power!\n");
845 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 HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject, IN BUS_QUERY_ID_TYPE IdType, OUT PUSHORT *BusQueryId)
return STATUS_NOT_SUPPORTED
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
#define IRP_MN_QUERY_RESOURCES
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define IRP_MN_REMOVE_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
LONG InterfaceReferenceCount
IN BOOLEAN OUT PSTR Buffer
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
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
PVOID NTAPI HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
struct _PDO_EXTENSION * Next
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
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@378 u
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
NTSTATUS NTAPI HalpQueryResourceRequirements(IN PDEVICE_OBJECT DeviceObject, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
PDEVICE_OBJECT FunctionalDeviceObject
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS NTAPI HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID NTAPI DbgBreakPoint(VOID)
_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)
#define IoCompleteRequest
NTSTATUS NTAPI IoCreateDriver(_In_opt_ PUNICODE_STRING DriverName, _In_ PDRIVER_INITIALIZE InitializationFunction)
NTSTATUS NTAPI HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ BUS_QUERY_ID_TYPE IdType
#define FILE_AUTOGENERATED_DEVICE_NAME
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
PFDO_EXTENSION ParentFdoExtension
#define IRP_MN_SURPRISE_REMOVAL
EXTENSION_TYPE ExtensionType
_In_ DEVICE_RELATION_TYPE RelationType
struct _PDO_EXTENSION * PPDO_EXTENSION
#define NT_SUCCESS(StatCode)
#define STATUS_NO_SUCH_DEVICE
PWCHAR HalHardwareIdString
PDEVICE_OBJECT AttachedDeviceObject
#define IRP_MN_START_DEVICE
IN PVOID IN PVOID IN USHORT Version
#define IRP_MN_QUERY_INTERFACE
NTSTATUS NTAPI HalpDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _FDO_EXTENSION * PFDO_EXTENSION
EXTENSION_TYPE ExtensionType
PDESCRIPTION_HEADER WdTable
#define IRP_MJ_SYSTEM_CONTROL
NTSTATUS NTAPI IoReportDetectedDevice(_In_ PDRIVER_OBJECT DriverObject, _In_ INTERFACE_TYPE LegacyBusType, _In_ ULONG BusNumber, _In_ ULONG SlotNumber, _In_opt_ PCM_RESOURCE_LIST ResourceList, _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements, _In_ BOOLEAN ResourceAssigned, _Inout_ PDEVICE_OBJECT *DeviceObject)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
PDRIVER_ADD_DEVICE AddDevice
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@378::@381 Interrupt
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
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
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
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)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IoSkipCurrentIrpStackLocation(Irp)
#define CmResourceTypeInterrupt
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSTATUS NTAPI HaliInitPnpDriver(VOID)
_In_ WDFIORESREQLIST RequirementsList
#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
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)
#define RtlCopyMemory(Destination, Source, Length)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define FILE_DEVICE_BUS_EXTENDER
#define ExFreePoolWithTag(_P, _T)
struct _FDO_EXTENSION FDO_EXTENSION
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
struct _PDO_EXTENSION PDO_EXTENSION
NTSTATUS NTAPI HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_CAPABILITIES Capabilities)
#define IRP_MN_QUERY_CAPABILITIES