22 &GUID_INT_ROUTE_INTERFACE_STANDARD,
41 ASSERTMSG(
"PCI routeintrf_Initializer, unexpected call.\n",
FALSE);
83 *LegacyDevice =
Entry;
84 return Entry->PdoExtension;
146 *SubClassCode = LegacyDevice->
SubClass;
158 *ParentPdo =
PdoExtension->ParentFdoExtension->PhysicalDeviceObject;
222 sizeof(LineRegister));
227 if (
BiosData.u.type0.InterruptLine == LineRegister)
230 BiosData.u.type0.InterruptLine = LineRegister;
253 RouteInterface->
Size =
sizeof(*RouteInterface);
255 RouteInterface->
Context = DeviceExtension;
301 LegacyDevice = *
Link;
307 LegacyDevice = LegacyDevice->
Next;
342 if (pFoundDeviceObject) *pFoundDeviceObject =
DeviceObject;
348 if (pFoundDeviceObject) *pFoundDeviceObject = FoundDeviceObject;
PDEVICE_OBJECT PhysicalDeviceObject
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
PDRIVER_OBJECT PciDriverObject
VOID NTAPI PciWriteDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
#define PCI_INTERFACE_FDO
NTSTATUS NTAPI PciGetBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
NTSTATUS NTAPI PciSaveBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
@ PciInterface_IntRouteHandler
#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 * u
_In_ UCXUSBDEVICE _In_ PDEVICE_OBJECT Pdo
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
#define ExFreePoolWithTag(_P, _T)
#define _Outptr_result_maybenull_
#define ASSERTMSG(msg, exp)
#define UNREFERENCED_PARAMETER(P)
#define STATUS_NOINTERFACE
_In_ ULONG _In_ PCI_SLOT_NUMBER PciSlot
NTSTATUS NTAPI routeintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
VOID NTAPI PciFreeLegacyDeviceCache(VOID)
Frees the routing cached for slots claimed by legacy drivers.
NTSTATUS NTAPI routeintrf_Initializer(IN PVOID Instance)
NTSTATUS NTAPI PciCacheLegacyDeviceRouting(IN PDEVICE_OBJECT DeviceObject, IN ULONG BusNumber, IN ULONG SlotNumber, IN UCHAR InterruptLine, IN UCHAR InterruptPin, IN UCHAR BaseClass, IN UCHAR SubClass, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PPCI_PDO_EXTENSION PdoExtension, OUT PDEVICE_OBJECT *pFoundDeviceObject)
PCI_INTERFACE PciRoutingInterface
static PPCI_PDO_EXTENSION NTAPI routeintrf_FindDevice(_In_opt_ PDEVICE_OBJECT DeviceObject, _Outptr_result_maybenull_ PPCI_LEGACY_DEVICE *LegacyDevice)
Finds the PDO extension behind one of our PDOs or a cached legacy device object. LegacyDevice receive...
static VOID NTAPI routeintrf_UpdateInterruptLine(_In_ PDEVICE_OBJECT Pdo, _In_ UCHAR LineRegister)
Programs the IRQ chosen for a device into its interrupt line register. The saved BIOS copy is updated...
static NTSTATUS NTAPI routeintrf_GetInterruptRouting(_In_ PDEVICE_OBJECT Pdo, _Out_ ULONG *Bus, _Out_ ULONG *PciSlot, _Out_ UCHAR *InterruptLine, _Out_ UCHAR *InterruptPin, _Out_ UCHAR *ClassCode, _Out_ UCHAR *SubClassCode, _Out_ PDEVICE_OBJECT *ParentPdo, _Out_ ROUTING_TOKEN *RoutingToken, _Out_ UCHAR *Flags)
Describes where a device's interrupt pin is wired. ParentPdo is the PDO of the bridge above the devic...
PPCI_LEGACY_DEVICE PciLegacyDeviceHead
static NTSTATUS NTAPI routeintrf_SetInterruptRoutingToken(_In_ PDEVICE_OBJECT Pdo, _In_ PROUTING_TOKEN RoutingToken)
static VOID NTAPI routeintrf_Dereference(_In_ PVOID Context)
static VOID NTAPI routeintrf_Reference(_In_ PVOID Context)
PINTERFACE_DEREFERENCE InterfaceDereference
PGET_INTERRUPT_ROUTING GetInterruptRouting
PUPDATE_INTERRUPT_LINE UpdateInterruptLine
PINTERFACE_REFERENCE InterfaceReference
PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken
PPCI_PDO_EXTENSION PdoExtension
PDEVICE_OBJECT PhysicalDeviceObject
PDEVICE_OBJECT DeviceObject
ROUTING_TOKEN RoutingToken
struct _PCI_LEGACY_DEVICE * Next
#define FIELD_OFFSET(t, f)
#define RtlZeroMemory(Destination, Length)
_In_ UCXUSBDEVICE _In_ ULONG Interface
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
static int Link(const char **args)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
struct _INT_ROUTE_INTERFACE_STANDARD * PINT_ROUTE_INTERFACE_STANDARD
struct _INT_ROUTE_INTERFACE_STANDARD INT_ROUTE_INTERFACE_STANDARD
#define PCI_INT_ROUTE_INTRF_STANDARD_VER