40 ParentBusInterfaceType,
158 L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET");
272 DbgPrint(
"HAL: Unknown PCI type\n");
302 if (((PciHeader->u.type0.InterruptPin) &&
303 (PciHeader->u.type0.InterruptPin > 4)) ||
304 (PciHeader->u.type0.InterruptLine & 0x70))
314 Address = PciHeader->u.type0.BaseAddresses[
i];
357 L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET\\"
381 DbgPrint(
"\tFound HackFlags for your chipset\n");
383 DbgPrint(
"\t\tHack Flags: %lx (Hack Revision: %lx-Your Revision: %lx)\n",
414 ElementCount = PciRegistryInfo->ElementCount;
415 if (!ElementCount)
return FALSE;
418 CardDescriptor = &PciRegistryInfo->CardList[0];
419 for (
i = 0;
i < ElementCount;
i++, CardDescriptor++)
425 if ((CardDescriptor->
VendorID != PciData->VendorID) ||
426 (CardDescriptor->
DeviceID != PciData->DeviceID))
434 (CardDescriptor->
RevisionID != PciData->RevisionID))
462 (CardDescriptor->
SubsystemID != PciData->u.type0.SubSystemID))
498 if (PciData->VendorID == 0x1C1C)
return TRUE;
501 if ((PciData->VendorID == 0x10B9) &&
502 ((PciData->DeviceID == 0x5215) || (PciData->DeviceID == 0x5219)))
508 if ((PciData->VendorID == 0x1097) && (PciData->DeviceID == 0x38))
return TRUE;
511 if ((PciData->VendorID == 0xE11) && (PciData->DeviceID == 0xAE33))
return TRUE;
514 if ((PciData->VendorID == 0x1042) && (PciData->DeviceID == 0x1000))
return TRUE;
517 if ((PciData->VendorID == 0x1039) &&
518 ((PciData->DeviceID == 0x601) || (PciData->DeviceID == 0x5513)))
524 if ((PciData->VendorID == 0x10AD) &&
525 ((PciData->DeviceID == 0x1) || (PciData->DeviceID == 0x150)))
531 if ((PciData->VendorID == 0x1060) && (PciData->DeviceID == 0x101))
return TRUE;
567 for (
i = 0;
i < *BusCount;
i++)
597 DPRINT1(
"Your machine has a PCI-to-PCI or CardBUS Bridge. PCI devices may fail!\n");
616 for (
i = 0;
i < BusCount;
i++)
627 DPRINT1(
"Found parent bus (indicating PCI Bridge). PCI devices may fail!\n");
635 for (
i = 0;
i < BusCount;
i++)
652 DPRINT1(
"Found parent PCI Bus (indicating PCI-to-PCI Bridge). PCI devices may fail!\n");
662 for (
i = 0;
i < BusCount;
i++)
668 DPRINT(
"Warning: Bus addresses not being optimized!\n");
682 else if (
x < 1048576)
686 else if (
x < 0x80000000)
702#include "pci_classes.h"
703#include "pci_vendors.h"
714 PCHAR p, ClassName, Boundary, SubClassName,
VendorName, ProductName, SubVendorName;
717 CHAR LookupString[16] =
"";
718 CHAR bSubClassName[64] =
"Unknown";
719 CHAR bVendorName[64] =
"";
720 CHAR bProductName[128] =
"Unknown device";
721 CHAR bSubVendorName[128] =
"Unknown";
727 sprintf(LookupString,
"C %02x ", PciData->BaseClass);
728 ClassName =
strstr((
PCHAR)ClassTable, LookupString);
732 ClassName +=
strlen(
"C 00 ");
735 SubClassName =
strstr(ClassName, LookupString);
736 if (Boundary && SubClassName > Boundary)
742 SubClassName = ClassName;
753 bSubClassName[
Length] =
'\0';
767 bVendorName[
Length] =
'\0';
769 while (*
p ==
'\t' || *
p ==
'#')
777 sprintf(LookupString,
"\t%04x ", PciData->DeviceID);
779 if (Boundary && ProductName >= Boundary)
786 ProductName +=
strlen(
"\t0000 ");
791 bProductName[
Length] =
'\0';
793 while ((*
p ==
'\t' && *(
p + 1) ==
'\t') || *
p ==
'#')
799 SubVendorName =
NULL;
806 PciData->u.type0.SubVendorID,
807 PciData->u.type0.SubSystemID);
808 SubVendorName =
strstr(ProductName, LookupString);
809 if (Boundary && SubVendorName >= Boundary)
811 SubVendorName =
NULL;
817 SubVendorName +=
strlen(
"\t\t0000 0000 ");
822 bSubVendorName[
Length] =
'\0';
828 DbgPrint(
"%02x:%02x.%x %s [%02x%02x]: %s %s [%04x:%04x] (rev %02x)\n",
839 PciData->RevisionID);
843 DbgPrint(
"\tSubsystem: %s [%04x:%04x]\n",
845 PciData->u.type0.SubVendorID,
846 PciData->u.type0.SubSystemID);
857 DbgPrint(
" latency %d", PciData->LatencyTimer);
858 if (PciData->u.type0.InterruptPin != 0 &&
859 PciData->u.type0.InterruptLine != 0 &&
860 PciData->u.type0.InterruptLine != 0xFF)
DbgPrint(
", IRQ %02d", PciData->u.type0.InterruptLine);
861 else if (PciData->u.type0.InterruptPin != 0)
DbgPrint(
", IRQ assignment required");
867 DbgPrint(
" primary bus %d,", PciData->u.type1.PrimaryBus);
868 DbgPrint(
" secondary bus %d,", PciData->u.type1.SecondaryBus);
869 DbgPrint(
" subordinate bus %d,", PciData->u.type1.SubordinateBus);
870 DbgPrint(
" secondary latency %d", PciData->u.type1.SecondaryLatency);
880 Mem = PciData->u.type0.BaseAddresses[
b];
885 ULONG PciBar = 0xFFFFFFFF;
921 DbgPrint(
"\tMemory at %08lx (%d-bit, %sprefetchable)",
952 if (!PciRegistryInfo)
return;
961 if ((PciRegistryInfo->
NoBuses) && (PciType == 2))
973 if (!BusHandler)
break;
981 if (!BusHandler)
break;
998 for (
i = 0;
i < PciRegistryInfo->
NoBuses;
i++)
1014 DbgPrint(
"\n====== PCI BUS HARDWARE DETECTION =======\n\n");
1016 for (
i = 0;
i < PciRegistryInfo->
NoBuses;
i++)
1048 DbgPrint(
"\tDevice is a PCI Cardbus Bridge. It will not work!\n");
1056 if ((PciData->u.type1.InterruptPin) &&
1057 (PciData->u.type1.InterruptLine))
1060 if (PciData->u.type1.InterruptLine < 16)
1066 DbgPrint(
"\tDevice is using IRQ %d! ISA Cards using that IRQ may fail!\n",
1067 PciData->u.type1.InterruptLine);
1075 if (PciData->VendorID == 0x8086)
1078 if ((PciData->DeviceID == 0x04A3) &&
1079 (PciData->RevisionID < 0x11))
1082 DbgPrint(
"\tDevice is a broken Intel 82430 PCI Controller. It will not work!\n\n");
1087 if ((PciData->DeviceID == 0x0484) &&
1088 (PciData->RevisionID <= 3))
1091 DbgPrint(
"\tDevice is a broken Intel 82378 PCI-to-ISA Bridge. It will not work!\n\n");
1096 if ((PciData->DeviceID == 0x84C4) &&
1097 (PciData->RevisionID <= 4))
1099 DbgPrint(
"\tDevice is a Intel Orion 82450 PCI Bridge. It will not work!\n\n");
1105 if (!ExtendedAddressDecoding)
1113 DbgPrint(
"\tDevice has Extended Address Decoding. It may fail to work on older BIOSes!\n");
1114 ExtendedAddressDecoding =
TRUE;
1121 PciData->RevisionID,
1128 DbgPrint(
"This chipset has broken ACPI IRQ Routing! Be aware!\n\n");
1135 DbgPrint(
"This chipset has a broken ACPI timer! Be aware!\n\n");
1142 DbgPrint(
"This chipset has a broken PCI device which is incompatible with hibernation. Be aware!\n\n");
1149 DbgPrint(
"This chipset has a USB controller which generates SMIs. ReactOS will likely fail to boot!\n\n");
1168 DbgPrint(
"====== PCI BUS DETECTION COMPLETE =======\n\n");
1192#if (NTDDI_VERSION >= NTDDI_VISTA)
1274 NextEntry = NextEntry->
Flink;
1299 NextEntry = NextEntry->
Flink;
1369 (*ResourceList)->BusNumber);
1515 DPRINT1(
"Returning IRQL %lx, Vector %lx for Level/Vector: %lx/%lx\n",
1517 DPRINT1(
"Old HAL would've returned IRQL %lx and Vector %lx\n",
static const char VendorName[]
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
#define PCI_TYPE1_DATA_PORT
#define PCI_TYPE1_ADDRESS_PORT
PBUS_HANDLER FASTCALL HaliReferenceHandlerForConfigSpace(IN BUS_DATA_TYPE ConfigType, IN ULONG BusNumber)
ULONG NTAPI HalpGetPCIIntOnISABus(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
NTSTATUS NTAPI HalpAssignPCISlotResources(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN ULONG Slot, IN OUT PCM_RESOURCE_LIST *pAllocatedResources)
VOID NTAPI HalpPCIPin2ISALine(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciData)
#define PCI_TYPE2_ADDRESS_BASE
#define PCI_TYPE2_CSE_PORT
const PCI_CONFIG_HANDLER PCIConfigHandlerType1
ULONG NTAPI HalpcGetCmosData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
BOOLEAN NTAPI HalpTranslateIsaBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
VOID NTAPI HalpPCIISALine2Pin(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciNewData, IN PPCI_COMMON_CONFIG PciOldData)
NTSTATUS NTAPI HalpAdjustPCIResourceList(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
NTSTATUS NTAPI HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER PciSlot, OUT PSUPPORTED_RANGE *Range)
PCI_CONFIG_HANDLER PCIConfigHandler
VOID NTAPI HalpWritePCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
ULONG NTAPI HalpcSetCmosData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
const PCI_CONFIG_HANDLER PCIConfigHandlerType2
VOID NTAPI HalpReadPCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
VOID NTAPI HalpInitBusHandler(VOID)
PBUS_HANDLER NTAPI HalpContextToBusHandler(IN ULONG_PTR ContextValue)
PPCI_REGISTRY_INFO_INTERNAL NTAPI HalpQueryPciRegistryInfo(VOID)
ULONG NTAPI HalpNoBusData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _In_ PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Handler for buses without configuration space.
ULONG NTAPI HalpGetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
BOOLEAN NTAPI HalpTranslateSystemBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
ULONG NTAPI HalpGetSystemInterruptVector(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
LIST_ENTRY HalpAllBusHandlers
#define PCI_TYPE2_FORWARD_PORT
ULONG NTAPI HalpSetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
struct _PCIPBUSDATA * PPCIPBUSDATA
static BOOLEAN NTAPI HalpIsValidPCIDevice(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot)
static PBUS_HANDLER NTAPI HalpAllocateAndInitPciBusHandler(IN ULONG PciType, IN ULONG BusNo, IN BOOLEAN TestAllocation)
static VOID NTAPI HalpFixupPciSupportedRanges(IN ULONG BusCount)
NTSTATUS NTAPI HalAdjustResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST *ResourceList)
ULONG NTAPI HalSetBusDataByOffset(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
static NTSTATUS NTAPI HalpGetChipHacks(IN USHORT VendorId, IN USHORT DeviceId, IN UCHAR RevisionId, IN PULONG HackFlags)
KSPIN_LOCK HalpPCIConfigLock
VOID NTAPI HalpRegisterKdSupportFunctions(VOID)
VOID NTAPI HalpInitializePciBus(VOID)
static BOOLEAN WarningsGiven[5]
static BOOLEAN NTAPI HalpIsRecognizedCard(IN PPCI_REGISTRY_INFO_INTERNAL PciRegistryInfo, IN PPCI_COMMON_CONFIG PciData, IN ULONG Flags)
VOID NTAPI HalpDebugPciDumpBus(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER PciSlot, IN ULONG i, IN ULONG j, IN ULONG k, IN PPCI_COMMON_CONFIG PciData)
static NTSTATUS NTAPI HalpMarkChipsetDecode(IN BOOLEAN OverrideEnable)
NTSTATUS NTAPI HalpAssignSlotResources(IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources)
VOID NTAPI HalpInitBusHandlers(VOID)
NTSTATUS NTAPI HalAssignSlotResources(IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources)
static VOID NTAPI HalpRegisterInternalBusHandlers(VOID)
PBUS_HANDLER NTAPI HalpAllocateBusHandler(IN INTERFACE_TYPE InterfaceType, IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN INTERFACE_TYPE ParentBusInterfaceType, IN ULONG ParentBusNumber, IN ULONG BusSpecificData)
static BOOLEAN NTAPI HalpGetPciBridgeConfig(IN ULONG PciType, IN PUCHAR BusCount)
static VOID ShowSize(IN ULONG x)
BOOLEAN NTAPI HaliFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
BOOLEAN NTAPI HalTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
BOOLEAN NTAPI HaliTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
ULONG NTAPI HalGetBusDataByOffset(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
static BOOLEAN NTAPI HalpIsBridgeDevice(IN PPCI_COMMON_CONFIG PciData)
ULONG NTAPI HalGetInterruptVector(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
static BOOLEAN NTAPI HalpIsIdeDevice(IN PPCI_COMMON_CONFIG PciData)
ULONG NTAPI HalGetBusData(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length)
ULONG NTAPI HalSetBusData(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define RtlInitializeBitMap
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP char *__cdecl strstr(const char *, const char *)
_ACRTIMP char *__cdecl strpbrk(const char *, const char *)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeInitializeSpinLock(sl)
GLint GLint GLint GLint GLint x
GLboolean GLboolean GLboolean b
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
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
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 GLint GLint j
PVOID NTAPI HalpMapPhysicalMemory64Vista(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN PFN_COUNT PageCount)
VOID NTAPI HalpUnmapVirtualAddressVista(IN PVOID VirtualAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount)
VOID NTAPI HalpCheckPowerButton(VOID)
NTSTATUS NTAPI HalpOpenRegistryKey(IN PHANDLE KeyHandle, IN HANDLE RootKey, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN BOOLEAN Create)
VOID NTAPI HalpGetNMICrashFlag(VOID)
#define VECTOR2IRQL(vector)
#define HALP_CHECK_CARD_REVISION_ID
#define HALP_CARD_FEATURE_FULL_DECODE
#define HALP_HACK_FLAGS(x)
#define HALP_CHECK_CARD_SUBVENDOR_ID
#define HALP_CHECK_CARD_SUBSYSTEM_ID
#define HALP_REVISION_FROM_HACK_FLAGS(x)
#define HALP_REVISION_HACK_FLAGS(x)
NTSTATUS NTAPI HalpReleasePciDeviceForDebugging(_Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice)
Releases the PCI device MMIO mappings previously allocated with HalpSetupPciDeviceForDebugging().
NTSTATUS NTAPI HalpSetupPciDeviceForDebugging(_In_opt_ PVOID LoaderBlock, _Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice)
Finds and fully initializes the PCI device associated with the supplied debug device descriptor.
#define ExFreePoolWithTag(_P, _T)
#define _swprintf(buf, format,...)
#define InitializeObjectAttributes(p, n, a, r, s)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define KdUnmapVirtualAddress
#define HalRegisterBusHandler
#define KdMapPhysicalMemory64
#define KdSetupPciDeviceForDebugging
#define KdReleasePciDeviceforDebugging
#define KdCheckPowerButton
#define HalPciTranslateBusAddress
#define HalPciAssignSlotResources
#define HAL_PCI_CHIP_HACK_BROKEN_ACPI_TIMER
#define HAL_PCI_CHIP_HACK_DISABLE_ACPI_IRQ_ROUTING
#define HAL_PCI_CHIP_HACK_USB_SMI_DISABLE
#define HAL_PCI_CHIP_HACK_DISABLE_HIBERNATE
#define HAL_SUPPORTED_RANGE_VERSION
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
@ KeyValuePartialInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ ULONG _In_ PCI_SLOT_NUMBER PciSlot
#define OBJ_CASE_INSENSITIVE
enum _INTERFACE_TYPE INTERFACE_TYPE
@ ConfigurationSpaceUndefined
enum _BUS_DATA_TYPE BUS_DATA_TYPE
PGETINTERRUPTVECTOR GetInterruptVector
PGETSETBUSDATA GetBusData
PSUPPORTED_RANGES BusAddresses
PTRANSLATEBUSADDRESS TranslateBusAddress
PASSIGNSLOTRESOURCES AssignSlotResources
struct _BUS_HANDLER * ParentHandler
PGETSETBUSDATA SetBusData
INTERFACE_TYPE InterfaceType
PADJUSTRESOURCELIST AdjustResourceList
struct _LIST_ENTRY * Flink
PciReadWriteConfig WriteConfig
PciReadWriteConfig ReadConfig
ULONG ConfiguredBits[PCI_MAX_DEVICES *PCI_MAX_FUNCTION/32]
struct _PCIPBUSDATA::@1714::@1715 Type1
union _PCIPBUSDATA::@1714 Config
struct _PCIPBUSDATA::@1714::@1716 Type2
RTL_BITMAP DeviceConfigured
union _PCI_SLOT_NUMBER::@4969 u
struct _PCI_SLOT_NUMBER::@4969::@4970 bits
SUPPORTED_RANGE PrefetchMemory
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define CONTAINING_RECORD(address, type, field)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
_In_opt_ PUNICODE_STRING DriverClassName
_In_ ULONG _In_ ULONG BusInterruptLevel
_In_ ULONG _In_ ULONG _In_ ULONG BusInterruptVector
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
#define HalDereferenceBusHandler
#define HalReferenceHandlerForBus
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
#define PCI_INVALID_VENDORID
#define PCI_ADDRESS_IO_ADDRESS_MASK
#define PCI_ENABLE_BUS_MASTER
#define PCI_TYPE0_ADDRESSES
#define PCI_SUBCLASS_BR_PCI_TO_PCI
#define PCI_CLASS_MASS_STORAGE_CTLR
struct _PCI_COMMON_CONFIG * PPCI_COMMON_CONFIG
#define PCI_ADDRESS_IO_SPACE
#define PCI_CONFIGURATION_TYPE(PciData)
#define PCI_SUBCLASS_MSC_IDE_CTLR
#define PCI_TYPE1_ADDRESSES
#define PCI_STATUS_66MHZ_CAPABLE
#define PCI_STATUS_DEVSEL
#define PCI_ADDRESS_MEMORY_ADDRESS_MASK
#define PCI_COMMON_HDR_LENGTH
#define PCI_CLASS_BRIDGE_DEV
#define PCI_SUBCLASS_BR_CARDBUS
#define PCI_ADDRESS_MEMORY_PREFETCHABLE
#define PCI_ADDRESS_MEMORY_TYPE_MASK
#define PCI_CARDBUS_BRIDGE_TYPE
@ NonPagedPoolMustSucceed