65 DPRINT(
"HAL: PnP Driver ADD!\n");
115 DPRINT1(
"HAL: Could not create ACPI device object status=0x%08x\n",
Status);
148 DPRINT1(
"HalpQueryInterface({%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}) is UNIMPLEMENTED\n",
168 ULONG i = 0, PdoCount = 0;
190 if (*DeviceRelations)
192 PdoCount += (*DeviceRelations)->Count;
204 FdoRelations->
Count = PdoCount;
207 ObjectEntry = FdoRelations->
Objects;
208 if (*DeviceRelations)
211 if ((*DeviceRelations)->Count)
217 *ObjectEntry++ = (*DeviceRelations)->Objects[
i];
219 while (++
i < (*DeviceRelations)->Count);
244 *DeviceRelations = FdoRelations;
261 PdoRelations->
Count = 1;
266 *DeviceRelations = PdoRelations;
393 PartialDesc->ShareDisposition =
Descriptor->ShareDisposition;
397 PartialDesc->u.Interrupt.Vector =
Descriptor->u.Interrupt.MinimumVector;
398 PartialDesc->u.Interrupt.Level =
Descriptor->u.Interrupt.MinimumVector;
399 PartialDesc->u.Interrupt.Affinity = 0xFFFFFFFF;
483 CurrentId =
L"PCI_HAL\\PNP0A03";
487 CurrentId =
L"*PNP0A03";
495 CurrentId =
L"ACPI_HAL\\PNP0C18";
499 CurrentId =
L"*PNP0C18";
539 DPRINT(
"Returning: %S\n", *BusQueryId);
601 DPRINT(
"Returning: %S\n", *BusQueryId);
638 DPRINT(
"Querying device relations for FDO\n");
647 DPRINT(
"Querying interface for FDO\n");
660 DPRINT(
"Querying ID for FDO\n");
669 DPRINT(
"Querying the capabilities for the FDO\n");
714 DPRINT(
"Start device received\n");
721 DPRINT(
"Remove device received\n");
730 DPRINT(
"Surprise removal IRP\n");
737 DPRINT(
"Querying PDO relations\n");
746 DPRINT(
"Querying interface for PDO\n");
759 DPRINT(
"Querying the capabilities for the PDO\n");
767 DPRINT(
"Querying the resources for the PDO\n");
774 DPRINT(
"Querying the resource requirements for the PDO\n");
782 DPRINT(
"Query the ID for the PDO\n");
791 DPRINT(
"Query text for the PDO\n");
798 DPRINT(
"Filter resource requirements for the PDO\n");
805 DPRINT(
"Query device state for the PDO\n");
812 DPRINT(
"Query bus information for the PDO\n");
851 DPRINT1(
"HAL: PnP Driver Power!\n");
876 DPRINT(
"HAL: PnP Driver ENTRY!\n");
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
NTSTATUS NTAPI HalpQueryResources(IN PDEVICE_OBJECT DeviceObject, OUT PCM_RESOURCE_LIST *Resources)
struct _FDO_EXTENSION * PFDO_EXTENSION
NTSTATUS NTAPI HalpQueryResourceRequirements(IN PDEVICE_OBJECT DeviceObject, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
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)
NTSTATUS NTAPI HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI HalpDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
NTSTATUS NTAPI HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject, IN BUS_QUERY_ID_TYPE IdType, OUT PUSHORT *BusQueryId)
NTSTATUS NTAPI HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_CAPABILITIES Capabilities)
enum _EXTENSION_TYPE EXTENSION_TYPE
NTSTATUS NTAPI HalpAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT TargetDevice)
struct _PDO_EXTENSION PDO_EXTENSION
NTSTATUS NTAPI HaliInitPnpDriver(VOID)
struct _FDO_EXTENSION FDO_EXTENSION
NTSTATUS NTAPI HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE RelationType, OUT PDEVICE_RELATIONS *DeviceRelations)
PDRIVER_OBJECT HalpDriverObject
struct _PDO_EXTENSION * PPDO_EXTENSION
NTSTATUS NTAPI HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ BUS_QUERY_ID_TYPE IdType
#define STATUS_NOT_SUPPORTED
#define NT_SUCCESS(StatCode)
#define UNIMPLEMENTED_DBGBREAK(...)
#define ExAllocatePoolWithTag(hernya, size, tag)
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
PWCHAR HalHardwareIdString
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
_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
#define CmResourceTypeInterrupt
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSYSAPI void WINAPI DbgBreakPoint(void)
#define FILE_AUTOGENERATED_DEVICE_NAME
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IRP_MN_SURPRISE_REMOVAL
#define IoSkipCurrentIrpStackLocation(Irp)
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
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)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI IoCreateDriver(_In_opt_ PUNICODE_STRING DriverName, _In_ PDRIVER_INITIALIZE InitializationFunction)
#define IoCompleteRequest
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
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)
#define FILE_DEVICE_BUS_EXTENDER
PDEVICE_OBJECT Objects[1]
PDRIVER_ADD_DEVICE AddDevice
PDRIVER_EXTENSION DriverExtension
PDEVICE_OBJECT FunctionalDeviceObject
PDEVICE_OBJECT AttachedDeviceObject
EXTENSION_TYPE ExtensionType
struct _PDO_EXTENSION * ChildPdoList
PDEVICE_OBJECT PhysicalDeviceObject
union _IO_STACK_LOCATION::@1586 Parameters
struct _IO_STACK_LOCATION::@4026::@4057 QueryId
struct _IO_STACK_LOCATION::@4026::@4053 DeviceCapabilities
struct _IO_STACK_LOCATION::@4026::@4052 QueryInterface
struct _IO_STACK_LOCATION::@4026::@4051 QueryDeviceRelations
PDEVICE_OBJECT PhysicalDeviceObject
PDESCRIPTION_HEADER WdTable
struct _PDO_EXTENSION * Next
PFDO_EXTENSION ParentFdoExtension
LONG InterfaceReferenceCount
EXTENSION_TYPE ExtensionType
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_NO_SUCH_DEVICE
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_In_ DEVICE_RELATION_TYPE RelationType
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ WDFIORESREQLIST RequirementsList
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
#define IRP_MN_QUERY_PNP_DEVICE_STATE
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define IRP_MN_QUERY_INTERFACE
#define IRP_MN_START_DEVICE
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS
#define IRP_MN_REMOVE_DEVICE
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IRP_MJ_SYSTEM_CONTROL
#define IRP_MN_QUERY_DEVICE_TEXT
#define IRP_MN_QUERY_CAPABILITIES
#define IRP_MN_QUERY_RESOURCES
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
#define IRP_MN_QUERY_BUS_INFORMATION
#define ObReferenceObject