47 DPRINT(
"Called. IRP is at (0x%p)\n",
Irp);
49 Irp->IoStatus.Information = 0;
96 if (DeviceExtension->
IsFDO)
164 DPRINT(
"IoCreateDevice() failed with status 0x%X\n",
Status);
179 Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
183 DPRINT(
"Done AddDevice\n");
206 WCHAR KeyNameBuffer[16];
240 DPRINT1(
"PCI debugging device %02x:%02x.%x\n",
242 PciSlot.
u.
bits.DeviceNumber,
243 PciSlot.
u.
bits.FunctionNumber);
257 DPRINT(
"Peripheral Component Interconnect Bus Driver\n");
290 L"PCI\\VEN_%04X&DEV_%04X&SUBSYS_%08X&REV_%02X",
291 Device->PciConfig.VendorID,
292 Device->PciConfig.DeviceID,
293 (
Device->PciConfig.u.type0.SubSystemID << 16) +
294 Device->PciConfig.u.type0.SubVendorID,
295 Device->PciConfig.RevisionID);
323 L"PCI\\VEN_%04X&DEV_%04X&SUBSYS_%08X&REV_%02X",
324 Device->PciConfig.VendorID,
325 Device->PciConfig.DeviceID,
326 (
Device->PciConfig.u.type0.SubSystemID << 16) +
327 Device->PciConfig.u.type0.SubVendorID,
328 Device->PciConfig.RevisionID);
332 L"PCI\\VEN_%04X&DEV_%04X&SUBSYS_%08X",
333 Device->PciConfig.VendorID,
334 Device->PciConfig.DeviceID,
335 (
Device->PciConfig.u.type0.SubSystemID << 16) +
336 Device->PciConfig.u.type0.SubVendorID);
340 L"PCI\\VEN_%04X&DEV_%04X&CC_%02X%02X%02X",
341 Device->PciConfig.VendorID,
342 Device->PciConfig.DeviceID,
343 Device->PciConfig.BaseClass,
344 Device->PciConfig.SubClass,
345 Device->PciConfig.ProgIf);
349 L"PCI\\VEN_%04X&DEV_%04X&CC_%02X%02X",
350 Device->PciConfig.VendorID,
351 Device->PciConfig.DeviceID,
352 Device->PciConfig.BaseClass,
353 Device->PciConfig.SubClass);
375 L"PCI\\VEN_%04X&DEV_%04X&REV_%02X",
376 Device->PciConfig.VendorID,
377 Device->PciConfig.DeviceID,
378 Device->PciConfig.RevisionID);
382 L"PCI\\VEN_%04X&DEV_%04X",
383 Device->PciConfig.VendorID,
384 Device->PciConfig.DeviceID);
388 L"PCI\\VEN_%04X&CC_%02X%02X%02X",
389 Device->PciConfig.VendorID,
390 Device->PciConfig.BaseClass,
391 Device->PciConfig.SubClass,
392 Device->PciConfig.ProgIf);
396 L"PCI\\VEN_%04X&CC_%02X%02X",
397 Device->PciConfig.VendorID,
398 Device->PciConfig.BaseClass,
399 Device->PciConfig.SubClass);
404 Device->PciConfig.VendorID);
408 L"PCI\\CC_%02X%02X%02X",
409 Device->PciConfig.BaseClass,
410 Device->PciConfig.SubClass,
411 Device->PciConfig.ProgIf);
416 Device->PciConfig.BaseClass,
417 Device->PciConfig.SubClass);
435 switch (
Device->PciConfig.BaseClass)
438 switch (
Device->PciConfig.SubClass)
452 switch (
Device->PciConfig.SubClass)
481 switch (
Device->PciConfig.SubClass)
506 switch (
Device->PciConfig.SubClass)
527 switch (
Device->PciConfig.SubClass)
548 switch (
Device->PciConfig.SubClass)
565 switch (
Device->PciConfig.SubClass)
606 switch (
Device->PciConfig.SubClass)
616 switch (
Device->PciConfig.SubClass)
626 switch (
Device->PciConfig.SubClass)
636 switch (
Device->PciConfig.SubClass)
646 switch (
Device->PciConfig.SubClass)
656 switch (
Device->PciConfig.SubClass)
704 L"PCI-Bus %lu, Device %u, Function %u",
706 Device->SlotNumber.u.bits.DeviceNumber,
707 Device->SlotNumber.u.bits.FunctionNumber);
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
PDEVICE_OBJECT PhysicalDeviceObject
NTSTATUS FdoPowerControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
NTSTATUS FdoPnpControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define FILE_DEVICE_SECURE_OPEN
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define NT_SUCCESS(StatCode)
static const WCHAR Description[]
DRIVER_INITIALIZE DriverEntry
NTSTATUS PdoPnpControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
NTSTATUS PdoPowerControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
struct _COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
_In_ PIO_STACK_LOCATION IrpSp
#define ExAllocatePoolWithTag(hernya, size, tag)
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
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_ALLOCATE_NULL_STRING
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
_Out_ _Inout_ POEM_STRING DestinationString
DRIVER_DISPATCH(nfs41_FsdDispatch)
#define RTL_QUERY_REGISTRY_REQUIRED
#define RTL_QUERY_REGISTRY_DIRECT
#define RTL_REGISTRY_SERVICES
#define UNREFERENCED_PARAMETER(P)
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)
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
#define IoCompleteRequest
#define STATUS_NOT_IMPLEMENTED
NTSTRSAFEVAPI RtlStringCbPrintfW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
PCI_TYPE1_CFG_CYCLE_BITS PciDebuggingDevice[2]
NTSTATUS PciCreateInstanceIDString(PUNICODE_STRING InstanceID, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceDescriptionString(PUNICODE_STRING DeviceDescription, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceIDString(PUNICODE_STRING DeviceID, PPCI_DEVICE Device)
NTSTATUS PciCreateCompatibleIDsString(PUNICODE_STRING CompatibleIDs, PPCI_DEVICE Device)
NTSTATUS PciCreateHardwareIDsString(PUNICODE_STRING HardwareIDs, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceLocationString(PUNICODE_STRING DeviceLocation, PPCI_DEVICE Device)
static DRIVER_DISPATCH PciPnpControl
static DRIVER_DISPATCH PciDispatchDeviceControl
static DRIVER_ADD_DEVICE PciAddDevice
static VOID PciLocateKdDevices(VOID)
PPCI_DRIVER_EXTENSION DriverExtension
BOOLEAN HasDebuggingDevice
NTSTATUS PciDuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
static DRIVER_DISPATCH PciPowerControl
#define FILE_DEVICE_BUS_EXTENDER
#define IRP_MJ_DEVICE_CONTROL
COMMON_DEVICE_EXTENSION Common
struct _IO_STACK_LOCATION::@1575::@1576 DeviceIoControl
union _IO_STACK_LOCATION::@1575 Parameters
struct _PCI_SLOT_NUMBER::@4018::@4019 bits
union _PCI_SLOT_NUMBER::@4018 u
unsigned short MaximumLength
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE Fdo
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING DeviceLocation
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
_Must_inspect_result_ _In_ ULONG Flags
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR
#define PCI_CLASS_INPUT_DEV
#define PCI_SUBCLASS_NET_ATM_CTLR
#define PCI_SUBCLASS_SB_IEEE1394
#define PCI_SUBCLASS_SB_SMBUS
#define PCI_SUBCLASS_NET_ETHERNET_CTLR
#define PCI_SUBCLASS_BR_EISA
#define PCI_SUBCLASS_MSC_FLOPPY_CTLR
#define PCI_SUBCLASS_BR_HOST
#define PCI_CLASS_MEMORY_CTLR
#define PCI_SUBCLASS_BR_PCI_TO_PCI
#define PCI_CLASS_MASS_STORAGE_CTLR
#define PCI_SUBCLASS_PRE_20_NON_VGA
#define PCI_CLASS_DOCKING_STATION
#define PCI_CLASS_SIMPLE_COMMS_CTLR
#define PCI_CLASS_PROCESSOR
#define PCI_SUBCLASS_MSC_IDE_CTLR
#define PCI_SUBCLASS_BR_MCA
#define PCI_SUBCLASS_MM_AUDIO_DEV
#define PCI_SUBCLASS_SB_USB
#define PCI_SUBCLASS_SB_ACCESS
#define PCI_SUBCLASS_VID_XGA_CTLR
#define PCI_CLASS_MULTIMEDIA_DEV
#define PCI_SUBCLASS_BR_ISA
#define PCI_CLASS_BRIDGE_DEV
#define PCI_SUBCLASS_BR_PCMCIA
#define PCI_SUBCLASS_BR_CARDBUS
#define PCI_SUBCLASS_VID_3D_CTLR
#define PCI_SUBCLASS_MM_TELEPHONY_DEV
#define PCI_SUBCLASS_SB_FIBRE_CHANNEL
#define PCI_CLASS_NETWORK_CTLR
#define PCI_SUBCLASS_MM_VIDEO_DEV
#define PCI_SUBCLASS_NET_FDDI_CTLR
#define PCI_CLASS_BASE_SYSTEM_DEV
#define PCI_CLASS_SERIAL_BUS_CTLR
#define PCI_SUBCLASS_VID_VGA_CTLR
#define PCI_SUBCLASS_MSC_RAID_CTLR
#define PCI_SUBCLASS_SB_SSA
#define PCI_SUBCLASS_MSC_IPI_CTLR
#define PCI_SUBCLASS_MEM_FLASH
#define PCI_SUBCLASS_PRE_20_VGA
#define PCI_SUBCLASS_BR_NUBUS
#define PCI_CLASS_DISPLAY_CTLR
#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR
#define PCI_SUBCLASS_MEM_RAM