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);
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);
#define DO_DEVICE_INITIALIZING
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
#define PCI_SUBCLASS_NET_ETHERNET_CTLR
#define STATUS_INSUFFICIENT_RESOURCES
#define PCI_CLASS_SERIAL_BUS_CTLR
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
#define PCI_SUBCLASS_VID_3D_CTLR
#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR
IN BOOLEAN OUT PSTR Buffer
#define PCI_SUBCLASS_SB_USB
NTSTATUS PciCreateDeviceDescriptionString(PUNICODE_STRING DeviceDescription, PPCI_DEVICE Device)
#define UNREFERENCED_PARAMETER(P)
#define STATUS_INVALID_PARAMETER
#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING
#define PCI_SUBCLASS_MEM_RAM
NTSTATUS PciDuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
#define PCI_CLASS_MULTIMEDIA_DEV
static const WCHAR Description[]
PDEVICE_OBJECT PhysicalDeviceObject
#define PCI_SUBCLASS_MEM_FLASH
#define RTL_REGISTRY_SERVICES
#define PCI_SUBCLASS_PRE_20_NON_VGA
#define PCI_SUBCLASS_MM_TELEPHONY_DEV
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
#define PCI_SUBCLASS_MM_AUDIO_DEV
#define PCI_SUBCLASS_SB_FIBRE_CHANNEL
#define PCI_SUBCLASS_SB_SMBUS
NTSTATUS PdoPnpControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define PCI_SUBCLASS_BR_CARDBUS
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define PCI_SUBCLASS_NET_ATM_CTLR
#define PCI_SUBCLASS_MSC_FLOPPY_CTLR
static DRIVER_DISPATCH PciPnpControl
static VOID PciLocateKdDevices(VOID)
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
NTSTATUS PdoPowerControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define PCI_SUBCLASS_MSC_IPI_CTLR
#define PCI_SUBCLASS_MSC_RAID_CTLR
_Out_ _Inout_ POEM_STRING DestinationString
#define IoCompleteRequest
#define PCI_SUBCLASS_NET_FDDI_CTLR
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
NTSTATUS PciCreateHardwareIDsString(PUNICODE_STRING HardwareIDs, PPCI_DEVICE Device)
#define PCI_SUBCLASS_VID_VGA_CTLR
_Must_inspect_result_ _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
NTSTRSAFEVAPI RtlStringCbPrintfW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
_In_ WDFCOLLECTION _In_ ULONG Index
struct _COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
#define PCI_SUBCLASS_BR_MCA
NTSTATUS NTAPI DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
#define ExAllocatePoolWithTag(hernya, size, tag)
_Must_inspect_result_ _In_ WDFDEVICE Fdo
#define PCI_CLASS_DISPLAY_CTLR
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
#define PCI_SUBCLASS_BR_PCMCIA
#define PCI_CLASS_MEMORY_CTLR
NTSTATUS PciCreateInstanceIDString(PUNICODE_STRING InstanceID, PPCI_DEVICE Device)
#define PCI_SUBCLASS_BR_PCI_TO_PCI
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
BOOLEAN HasDebuggingDevice
#define PCI_SUBCLASS_MSC_IDE_CTLR
int _cdecl swprintf(const WCHAR *,...)
_Must_inspect_result_ _In_ WDFDEVICE Device
DRIVER_DISPATCH(nfs41_FsdDispatch)
COMMON_DEVICE_EXTENSION Common
#define PCI_CLASS_SIMPLE_COMMS_CTLR
NTSTATUS FdoPowerControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define PCI_SUBCLASS_SB_SSA
PCI_TYPE1_CFG_CYCLE_BITS PciDebuggingDevice[2]
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define PCI_CLASS_NETWORK_CTLR
static DRIVER_DISPATCH PciPowerControl
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 PciCreateDeviceIDString(PUNICODE_STRING DeviceID, PPCI_DEVICE Device)
static DRIVER_ADD_DEVICE PciAddDevice
#define InitializeListHead(ListHead)
#define PCI_SUBCLASS_MM_VIDEO_DEV
#define PCI_SUBCLASS_VID_XGA_CTLR
NTSTATUS PciCreateCompatibleIDsString(PUNICODE_STRING CompatibleIDs, PPCI_DEVICE Device)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING DeviceLocation
#define PCI_SUBCLASS_SB_IEEE1394
NTSTATUS PciCreateDeviceLocationString(PUNICODE_STRING DeviceLocation, PPCI_DEVICE Device)
static DRIVER_DISPATCH PciDispatchDeviceControl
#define PCI_CLASS_INPUT_DEV
NTSTATUS FdoPnpControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define PCI_SUBCLASS_BR_NUBUS
#define PCI_SUBCLASS_PRE_20_VGA
#define PCI_CLASS_DOCKING_STATION
PPCI_DRIVER_EXTENSION DriverExtension
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)
#define RtlZeroMemory(Destination, Length)
#define PCI_SUBCLASS_BR_HOST
#define RtlCopyMemory(Destination, Source, Length)
#define PCI_CLASS_PROCESSOR
#define FILE_DEVICE_SECURE_OPEN
#define PCI_CLASS_BRIDGE_DEV
#define PCI_SUBCLASS_BR_ISA
#define PCI_SUBCLASS_SB_ACCESS
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define PCI_CLASS_BASE_SYSTEM_DEV
#define FILE_DEVICE_BUS_EXTENDER
unsigned short MaximumLength
#define PCI_SUBCLASS_BR_EISA
#define RTL_QUERY_REGISTRY_REQUIRED
union _PCI_SLOT_NUMBER::@3798 u
#define RTL_QUERY_REGISTRY_DIRECT
_In_ PIO_STACK_LOCATION IrpSp
#define PCI_CLASS_MASS_STORAGE_CTLR
#define IRP_MJ_DEVICE_CONTROL
struct _PCI_SLOT_NUMBER::@3798::@3799 bits