48 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryDeviceID\n");
54 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryHardwareIDs\n");
59 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryCompatibleIDs\n");
64 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryInstanceID\n");
69 WARN_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_ID / unknown query id type 0x%lx\n",
IdType);
101 DeviceRelations->
Count = 1;
104 *pDeviceRelations = DeviceRelations;
145 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
151 switch (
Stack->Parameters.QueryDeviceRelations.Type)
160 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / TargetDeviceRelation\n");
167 WARN_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
168 Stack->Parameters.QueryDeviceRelations.Type);
180 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_CAPABILITIES\n");
206 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_RESOURCES\n");
218 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
230 switch (
Stack->Parameters.QueryDeviceText.DeviceTextType)
236 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / DeviceTextDescription\n");
262 WARN_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / unknown type 0x%lx\n",
263 Stack->Parameters.QueryDeviceText.DeviceTextType);
282 TRACE_(SERENUM,
"IRP_MJ_PNP / IRP_MN_QUERY_BUS_INFORMATION\n");
291 &GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_In_ BUS_QUERY_ID_TYPE IdType
static const WCHAR Description[]
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
NTSTATUS NTAPI ForwardIrpToAttachedFdoAndForget(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#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
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
NTSTATUS DuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
#define memcpy(s1, s2, n)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define IoCompleteRequest
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
static NTSTATUS SerenumPdoQueryId(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, OUT ULONG_PTR *Information)
static NTSTATUS SerenumPdoQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_RELATIONS *pDeviceRelations)
static NTSTATUS SerenumPdoStartDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS SerenumPdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PDEVICE_OBJECT Objects[1]
COMMON_DEVICE_EXTENSION Common
struct _IO_STACK_LOCATION::@3974::@4005 QueryId
union _IO_STACK_LOCATION::@1575 Parameters
UNICODE_STRING InstanceId
UNICODE_STRING HardwareIds
COMMON_DEVICE_EXTENSION Common
UNICODE_STRING CompatibleIds
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ UCHAR _In_ UCHAR MinorFunction
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
#define DeviceCapabilities
struct _PNP_BUS_INFORMATION * PPNP_BUS_INFORMATION
#define IRP_MN_START_DEVICE
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
struct _DEVICE_RELATIONS * PDEVICE_RELATIONS
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IRP_MN_QUERY_DEVICE_TEXT
#define IRP_MN_QUERY_CAPABILITIES
#define IRP_MN_QUERY_RESOURCES
@ DeviceTextLocationInformation
#define IRP_MN_QUERY_BUS_INFORMATION
#define ObReferenceObject