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(
"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"
447 (Package->Table.TableSize >
460 if (!*PciRoutingTable)
break;
507 if (!FullInfo)
break;
518 HackCount = FullInfo->
Values;
542 for (
i = 0;
i < HackCount;
i++)
589 DPRINT1(
"Skipping hack entry with invalid length name\n");
610 &
Entry->SubVendorID)) ||
612 &
Entry->SubSystemID)))
646 DPRINT1(
"Adding Hack entry for Vendor:0x%04x Device:0x%04x ",
649 DbgPrint(
"SybSys:0x%04x SubVendor:0x%04x ",
711 DPRINT1(
"PCI: DriverEntry!\n");
715 ParametersKey =
NULL;
717 ControlSetKey =
NULL;
785 (
PVOID*)&StartOptions,
790 OptionString.
Buffer = StartOptions;
807 L"Control\\BiosInfo\\PCI",
821 L"Control\\PnP\\PCI",
835 L"Control\\PnP\\PCI",
871 if (ControlSetKey)
ZwClose(ControlSetKey);
872 if (ParametersKey)
ZwClose(ParametersKey);
873 if (DebugKey)
ZwClose(DebugKey);
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
DRIVER_INITIALIZE DriverEntry
BOOLEAN PciEnableNativeModeATA
PDRIVER_OBJECT PciDriverObject
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)
NTSTATUS NTAPI PciGetDebugPorts(IN HANDLE DebugKey)
#define PCI_HACK_ENTRY_SUBSYS_SIZE
VOID NTAPI PciVerifierInit(IN PDRIVER_OBJECT DriverObject)
#define PCI_HACK_ENTRY_SIZE
#define PCI_HACK_ENTRY_REV_SIZE
#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)
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)
struct _PCI_HACK_ENTRY PCI_HACK_ENTRY
#define UNIMPLEMENTED_DBGBREAK(...)
#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)
NTHALAPI VOID NTAPI HalDisplayString(PUCHAR String)
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
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_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
@ 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 IRP_MJ_DEVICE_CONTROL
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
struct _ACPI_E820_ENTRY ACPI_E820_ENTRY
struct _ACPI_BIOS_MULTI_NODE ACPI_BIOS_MULTI_NODE
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
base of all file and directory entries
PHYSICAL_ADDRESS RsdtAddress
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
ULONG Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_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
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
#define IRP_MJ_SYSTEM_CONTROL
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes