61 L"System\\MultiFunctionAdapter",
79 if ( !FullInfo )
break;
93 if ( !KeyInfo )
break;
100 if (!ValueInfo)
break;
128 Status = ZwQueryValueKey(SubKey,
133 sizeof(
L"ACPI BIOS"),
171 NodeData = &Package->Node;
180 if (!*AcpiMultiNode)
break;
204 ULONG EntryCount, TableLength,
Offset, CurrentEntry;
205 PVOID TableBuffer, MappedAddress;
214 DPRINT1(
"PCIX - AcpiFindRsdt() Failed!\n");
226 TableLength =
Header->Length;
234 Rsdt = MappedAddress;
235 Xsdt = MappedAddress;
237 if (!Rsdt)
return NULL;
267 EntryCount = (TableLength -
Offset) /
sizeof(
ULONG);
271 for (CurrentEntry = 0; CurrentEntry < EntryCount; CurrentEntry++)
292 if (
Header->Signature == TableCode)
298 if (!TableBuffer)
break;
340 L"System\\MultiFunctionAdapter",
358 if ( !FullInfo )
break;
379 if (!ValueInfo)
break;
407 Status = ZwQueryValueKey(SubKey,
423 L"RealModeIrqRoutingTable"
450 PartialResourceList.PartialDescriptors);
457 Offset +=
sizeof(*Partial);
483 (
Table->TableSize < HeaderLength) ||
485 (((
Table->TableSize - HeaderLength) %
sizeof(
Table->Slot[0])) != 0))
492 for (
i = 0;
i <
Table->TableSize;
i++)
504 if (!*PciRoutingTable)
break;
549 if (!FullInfo)
break;
560 HackCount = FullInfo->
Values;
579 sizeof(
Entry->HackFlags),
586 for (
i = 0;
i < HackCount;
i++)
595 sizeof(
Entry->HackFlags),
631 DPRINT1(
"PCIX - Skipping hack entry with invalid length name\n");
652 &
Entry->SubVendorID)) ||
654 &
Entry->SubSystemID)))
675 Entry->RevisionID &= 0xFF;
689 DPRINT1(
"PCIX - Adding Hack entry for Vendor:0x%04x Device:0x%04x ",
692 DbgPrint(
"SybSys:0x%04x SubVendor:0x%04x ",
704 if (
i < HackCount)
break;
775 if ((BusLength ==
sizeof(*Bus)) && (SlotLength ==
sizeof(*Slot)))
853 DPRINT1(
"PCIX - DriverEntry!\n");
857 ParametersKey =
NULL;
859 ControlSetKey =
NULL;
927 (
PVOID*)&StartOptions,
932 OptionString.
Buffer = StartOptions;
949 L"Control\\BiosInfo\\PCI",
963 L"Control\\PnP\\PCI",
977 L"Control\\PnP\\PCI",
1013 if (ControlSetKey)
ZwClose(ControlSetKey);
1014 if (ParametersKey)
ZwClose(ParametersKey);
1015 if (DebugKey)
ZwClose(DebugKey);
SINGLE_LIST_ENTRY PciFdoExtensionListHead
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS PhysicalAddress
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG DataLength
#define NT_SUCCESS(StatCode)
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
DRIVER_INITIALIZE DriverEntry
PIO_RESOURCE_REQUIREMENTS_LIST PciZeroIoResourceRequirements
BOOLEAN PciEnableNativeModeATA
PDRIVER_OBJECT PciDriverObject
NTSTATUS NTAPI PciGetDebugPorts(_In_ HANDLE DebugKey)
Records the bus and slot of each debugging device listed under the Debug key.
NTSTATUS NTAPI PciBuildHackTable(IN HANDLE KeyHandle)
NTSTATUS NTAPI PciGetIrqRoutingTableFromRegistry(OUT PPCI_IRQ_ROUTING_TABLE *PciRoutingTable)
KEVENT PciLegacyDescriptionLock
NTSTATUS NTAPI PciAcpiFindRsdt(OUT PACPI_BIOS_MULTI_NODE *AcpiMultiNode)
ULONG PciSystemWideHackFlags
PPCI_IRQ_ROUTING_TABLE PciIrqRoutingTable
BOOLEAN PciRunningDatacenter
DRIVER_UNLOAD PciDriverUnload
BOOLEAN PciLockDeviceResources
PPCI_HACK_ENTRY PciHackTable
PVOID NTAPI PciGetAcpiTable(IN ULONG TableCode)
#define MAX_DEBUGGING_DEVICES_SUPPORTED
VOID NTAPI PciReleaseEcam(VOID)
Unmaps every bus mapped through the ECAM window.
#define PCI_HACK_ENTRY_SUBSYS_SIZE
VOID NTAPI PciVerifierInit(IN PDRIVER_OBJECT DriverObject)
#define PCI_HACK_ENTRY_SIZE
#define PCI_HACK_ENTRY_REV_SIZE
PCI_DEBUGGING_DEVICE PciDebuggingDevices[MAX_DEBUGGING_DEVICES_SUPPORTED]
#define PCI_HACK_HAS_REVISION_INFO
#define PCI_HACK_ENTRY_FULL_SIZE
BOOLEAN NTAPI PciOpenKey(IN PWCHAR KeyName, IN HANDLE RootKey, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle, OUT PNTSTATUS KeyStatus)
RTL_RANGE_LIST PciVgaAndIsaBitExclusionList
BOOLEAN NTAPI PciStringToUSHORT(IN PWCHAR String, OUT PUSHORT Value)
NTSTATUS NTAPI PciGetRegistryValue(IN PWCHAR ValueName, IN PWCHAR KeyName, IN HANDLE RootHandle, IN ULONG Type, OUT PVOID *OutputBuffer, OUT PULONG OutputLength)
BOOLEAN NTAPI PciUnicodeStringStrStr(IN PUNICODE_STRING InputString, IN PCUNICODE_STRING EqualString, IN BOOLEAN CaseInSensitive)
#define PCI_HACK_HAS_SUBSYSTEM_INFO
NTSTATUS NTAPI PciBuildDefaultExclusionLists(VOID)
DRIVER_DISPATCH PciDispatchIrp
BOOLEAN NTAPI PciIsDatacenter(VOID)
RTL_RANGE_LIST PciIsaBitExclusionList
struct _PCI_HACK_ENTRY PCI_HACK_ENTRY
VOID NTAPI PciVerifierRelease(VOID)
Drops the hardware profile notification taken by PciVerifierInit.
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeInitializeEvent(pEvt, foo, foo2)
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
VOID NTAPI PciHookHal(VOID)
VOID NTAPI PciRestoreHalHooks(VOID)
Gives the HAL back the routines PciHookHal replaced.
NTHALAPI VOID NTAPI HalDisplayString(PUCHAR String)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
#define ExFreePoolWithTag(_P, _T)
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING SubKeyName
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeRangeList(_In_ PRTL_RANGE_LIST RangeList)
@ KeyValuePartialInformation
@ KeyValueFullInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define REG_FULL_RESOURCE_DESCRIPTOR
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define STATUS_NO_MORE_ENTRIES
static DRIVER_ADD_DEVICE PciAddDevice
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define IRP_MJ_DEVICE_CONTROL
#define CmResourceTypeDeviceSpecific
VOID NTAPI PciFreeLegacyDeviceCache(VOID)
Frees the routing cached for slots claimed by legacy drivers.
struct _ACPI_E820_ENTRY ACPI_E820_ENTRY
struct _ACPI_BIOS_MULTI_NODE ACPI_BIOS_MULTI_NODE
#define PCI_IRQ_ROUTING_TABLE_VERSION
struct _PCI_IRQ_ROUTING_TABLE * PPCI_IRQ_ROUTING_TABLE
#define PCI_IRQ_ROUTING_TABLE_SIGNATURE
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
PHYSICAL_ADDRESS RsdtAddress
CM_PARTIAL_RESOURCE_LIST PartialResourceList
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@494::@503 DeviceSpecificData
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@494 u
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
union _PCI_SLOT_NUMBER::@5064 u
ULONG Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
struct _SINGLE_LIST_ENTRY * Next
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
_In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define PCI_INVALID_VENDORID
#define IRP_MJ_SYSTEM_CONTROL
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes