123 ParentBusInterfaceType,
244 L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET");
358 DbgPrint(
"HAL: Unnkown PCI type\n");
388 if (((PciHeader->u.type0.InterruptPin) &&
389 (PciHeader->u.type0.InterruptPin > 4)) ||
390 (PciHeader->u.type0.InterruptLine & 0x70))
400 Address = PciHeader->u.type0.BaseAddresses[
i];
445 L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET\\" 469 DbgPrint(
"\tFound HackFlags for your chipset\n");
471 DbgPrint(
"\t\tHack Flags: %lx (Hack Revision: %lx-Your Revision: %lx)\n",
502 ElementCount = PciRegistryInfo->ElementCount;
503 if (!ElementCount)
return FALSE;
506 CardDescriptor = &PciRegistryInfo->CardList[0];
507 for (
i = 0;
i < ElementCount;
i++, CardDescriptor++)
513 if ((CardDescriptor->
VendorID != PciData->VendorID) ||
514 (CardDescriptor->
DeviceID != PciData->DeviceID))
522 (CardDescriptor->
RevisionID != PciData->RevisionID))
550 (CardDescriptor->
SubsystemID != PciData->u.type0.SubSystemID))
586 if (PciData->VendorID == 0x1C1C)
return TRUE;
589 if ((PciData->VendorID == 0x10B9) &&
590 ((PciData->DeviceID == 0x5215) || (PciData->DeviceID == 0x5219)))
596 if ((PciData->VendorID == 0x1097) && (PciData->DeviceID == 0x38))
return TRUE;
599 if ((PciData->VendorID == 0xE11) && (PciData->DeviceID == 0xAE33))
return TRUE;
602 if ((PciData->VendorID == 0x1042) && (PciData->DeviceID == 0x1000))
return TRUE;
605 if ((PciData->VendorID == 0x1039) &&
606 ((PciData->DeviceID == 0x601) || (PciData->DeviceID == 0x5513)))
612 if ((PciData->VendorID == 0x10AD) &&
613 ((PciData->DeviceID == 0
x1) || (PciData->DeviceID == 0x150)))
619 if ((PciData->VendorID == 0x1060) && (PciData->DeviceID == 0x101))
return TRUE;
652 PciSlot.
u.
bits.Reserved = 0;
653 for (
i = 0;
i < *BusCount;
i++)
662 PciSlot.
u.
bits.DeviceNumber =
j;
666 PciSlot.
u.
bits.FunctionNumber =
k;
682 if (!
WarningsGiven[2]++)
DPRINT1(
"Your machine has a PCI-to-PCI or CardBUS Bridge. PCI devices may fail!\n");
701 for (
i = 0;
i < BusCount;
i++)
711 if (!
WarningsGiven[0]++)
DPRINT1(
"Found parent bus (indicating PCI Bridge). PCI devices may fail!\n");
719 for (
i = 0;
i < BusCount;
i++)
735 if (!
WarningsGiven[1]++)
DPRINT1(
"Found parent PCI Bus (indicating PCI-to-PCI Bridge). PCI devices may fail!\n");
745 for (
i = 0;
i < BusCount;
i++)
751 DPRINT(
"Warning: Bus addresses not being optimized!\n");
766 else if (
x < 1048576)
770 else if (
x < 0x80000000)
785 #include "pci_classes.h" 786 #include "pci_vendors.h" 795 PCHAR p, ClassName, Boundary, SubClassName,
VendorName, ProductName, SubVendorName;
798 CHAR LookupString[16] =
"";
799 CHAR bSubClassName[64] =
"Unknown";
800 CHAR bVendorName[64] =
"";
801 CHAR bProductName[128] =
"Unknown device";
802 CHAR bSubVendorName[128] =
"Unknown";
808 sprintf(LookupString,
"C %02x ", PciData->BaseClass);
809 ClassName =
strstr((
PCHAR)ClassTable, LookupString);
813 ClassName +=
strlen(
"C 00 ");
814 Boundary =
strstr(ClassName,
"\nC ");
815 sprintf(LookupString,
"\n\t%02x ", PciData->SubClass);
816 SubClassName =
strstr(ClassName, LookupString);
817 if (Boundary && SubClassName > Boundary)
823 SubClassName = ClassName;
827 SubClassName +=
strlen(
"\n\t00 ");
832 if (
Length >=
sizeof(bSubClassName))
Length =
sizeof(bSubClassName) - 1;
834 bSubClassName[
Length] =
'\0';
838 sprintf(LookupString,
"\r\n%04x ", PciData->VendorID);
846 if (
Length >=
sizeof(bVendorName))
Length =
sizeof(bVendorName) - 1;
848 bVendorName[
Length] =
'\0';
850 while (*
p ==
'\t' || *
p ==
'#')
858 sprintf(LookupString,
"\t%04x ", PciData->DeviceID);
860 if (Boundary && ProductName >= Boundary)
867 ProductName +=
strlen(
"\t0000 ");
870 if (
Length >=
sizeof(bProductName))
Length =
sizeof(bProductName) - 1;
872 bProductName[
Length] =
'\0';
874 while ((*
p ==
'\t' && *(
p + 1) ==
'\t') || *
p ==
'#')
880 SubVendorName =
NULL;
887 PciData->u.type0.SubVendorID,
888 PciData->u.type0.SubSystemID);
889 SubVendorName =
strstr(ProductName, LookupString);
890 if (Boundary && SubVendorName >= Boundary)
892 SubVendorName =
NULL;
898 SubVendorName +=
strlen(
"\t\t0000 0000 ");
901 if (
Length >=
sizeof(bSubVendorName))
Length =
sizeof(bSubVendorName) - 1;
903 bSubVendorName[
Length] =
'\0';
909 DbgPrint(
"%02x:%02x.%x %s [%02x%02x]: %s %s [%04x:%04x] (rev %02x)\n",
920 PciData->RevisionID);
924 DbgPrint(
"\tSubsystem: %s [%04x:%04x]\n",
926 PciData->u.type0.SubVendorID,
927 PciData->u.type0.SubSystemID);
938 DbgPrint(
" latency %d", PciData->LatencyTimer);
939 if (PciData->u.type0.InterruptPin != 0 &&
940 PciData->u.type0.InterruptLine != 0 &&
941 PciData->u.type0.InterruptLine != 0xFF)
DbgPrint(
", IRQ %02d", PciData->u.type0.InterruptLine);
942 else if (PciData->u.type0.InterruptPin != 0)
DbgPrint(
", IRQ assignment required");
948 DbgPrint(
" primary bus %d,", PciData->u.type1.PrimaryBus);
949 DbgPrint(
" secondary bus %d,", PciData->u.type1.SecondaryBus);
950 DbgPrint(
" subordinate bus %d,", PciData->u.type1.SubordinateBus);
951 DbgPrint(
" secondary latency %d", PciData->u.type1.SecondaryLatency);
961 Mem = PciData->u.type0.BaseAddresses[
b];
984 DbgPrint(
"\tMemory at %08lx (%d-bit, %sprefetchable)",
1015 if (!PciRegistryInfo)
return;
1024 if ((PciRegistryInfo->
NoBuses) && (PciType == 2))
1027 PciSlot.
u.
bits.Reserved = 0;
1028 PciSlot.
u.
bits.FunctionNumber = 0;
1031 for (
i = 0;
i < 32;
i++)
1036 if (!BusHandler)
break;
1044 if (!BusHandler)
break;
1061 for (
i = 0;
i < PciRegistryInfo->
NoBuses;
i++)
1077 DbgPrint(
"\n====== PCI BUS HARDWARE DETECTION =======\n\n");
1078 PciSlot.
u.
bits.Reserved = 0;
1079 for (
i = 0;
i < PciRegistryInfo->
NoBuses;
i++)
1085 for (
j = 0;
j < 32;
j++)
1088 PciSlot.
u.
bits.DeviceNumber =
j;
1089 for (
k = 0;
k < 8;
k++)
1092 PciSlot.
u.
bits.FunctionNumber =
k;
1111 DbgPrint(
"\tDevice is a PCI Cardbus Bridge. It will not work!\n");
1119 if ((PciData->u.type1.InterruptPin) &&
1120 (PciData->u.type1.InterruptLine))
1123 if (PciData->u.type1.InterruptLine < 16)
1129 DbgPrint(
"\tDevice is using IRQ %d! ISA Cards using that IRQ may fail!\n",
1130 PciData->u.type1.InterruptLine);
1138 if (PciData->VendorID == 0x8086)
1141 if ((PciData->DeviceID == 0x04A3) &&
1142 (PciData->RevisionID < 0x11))
1145 DbgPrint(
"\tDevice is a broken Intel 82430 PCI Controller. It will not work!\n\n");
1150 if ((PciData->DeviceID == 0x0484) &&
1151 (PciData->RevisionID <= 3))
1154 DbgPrint(
"\tDevice is a broken Intel 82378 PCI-to-ISA Bridge. It will not work!\n\n");
1159 if ((PciData->DeviceID == 0x84C4) &&
1160 (PciData->RevisionID <= 4))
1162 DbgPrint(
"\tDevice is a Intel Orion 82450 PCI Bridge. It will not work!\n\n");
1168 if (!ExtendedAddressDecoding)
1176 DbgPrint(
"\tDevice has Extended Address Decoding. It may fail to work on older BIOSes!\n");
1177 ExtendedAddressDecoding =
TRUE;
1184 PciData->RevisionID,
1191 DbgPrint(
"This chipset has broken ACPI IRQ Routing! Be aware!\n\n");
1198 DbgPrint(
"This chipset has a broken ACPI timer! Be aware!\n\n");
1205 DbgPrint(
"This chipset has a broken PCI device which is incompatible with hibernation. Be aware!\n\n");
1212 DbgPrint(
"This chipset has a USB controller which generates SMIs. ReactOS will likely fail to boot!\n\n");
1231 DbgPrint(
"====== PCI BUS DETECTION COMPLETE =======\n\n");
1256 #if (NTDDI_VERSION >= NTDDI_VISTA) 1337 if (ContextValue) NextEntry = NextEntry->
Flink;
1359 NextEntry = NextEntry->
Flink;
1426 (*ResourceList)->BusNumber);
1572 DPRINT1(
"Returning IRQL %lx, Vector %lx for Level/Vector: %lx/%lx\n",
1574 DPRINT1(
"Old HAL would've returned IRQL %lx and Vector %lx\n",
PVOID NTAPI HalpMapPhysicalMemory64Vista(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
#define HalReferenceHandlerForBus
PSUPPORTED_RANGES BusAddresses
#define VECTOR2IRQL(vector)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define HalRegisterBusHandler
_In_ ULONG _In_ ULONG BusInterruptLevel
#define PCI_TYPE0_ADDRESSES
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)
#define HalPciTranslateBusAddress
#define PCI_ADDRESS_IO_ADDRESS_MASK
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
#define HALP_REVISION_FROM_HACK_FLAGS(x)
_In_ ULONG _In_ ULONG _In_ ULONG Length
enum _INTERFACE_TYPE INTERFACE_TYPE
PBUS_HANDLER NTAPI HalpContextToBusHandler(IN ULONG_PTR ContextValue)
NTSTATUS NTAPI HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
#define OBJ_CASE_INSENSITIVE
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
#define KdUnmapVirtualAddress
#define HALP_CHECK_CARD_SUBSYSTEM_ID
ACPI_SIZE strlen(const char *String)
char * strpbrk(const char *String, const char *Delimiters)
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
ULONG NTAPI HalSetBusDataByOffset(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define PCI_MULTIFUNCTION
char * strstr(char *String1, char *String2)
ULONG NTAPI HalpNoBusData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount)
enum _BUS_DATA_TYPE BUS_DATA_TYPE
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
LIST_ENTRY HalpAllBusHandlers
char * strncpy(char *DstString, const char *SrcString, ACPI_SIZE Count)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
NTSYSAPI void WINAPI RtlInitializeBitMap(PRTL_BITMAP, PULONG, ULONG)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
NTSTATUS NTAPI HalpMarkChipsetDecode(IN BOOLEAN OverrideEnable)
struct _PCI_COMMON_CONFIG * PPCI_COMMON_CONFIG
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define PCI_ADDRESS_MEMORY_TYPE_MASK
IN PVOID IN PVOID IN USHORT IN USHORT Size
GLint GLint GLint GLint GLint x
#define HALP_CHECK_CARD_SUBVENDOR_ID
PciReadWriteConfig WriteConfig
SUPPORTED_RANGE PrefetchMemory
#define PCI_TYPE2_CSE_PORT
_In_ ULONG _In_ ULONG _In_ ULONG BusInterruptVector
#define HalDereferenceBusHandler
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
KSPIN_LOCK HalpPCIConfigLock
#define HAL_PCI_CHIP_HACK_DISABLE_ACPI_IRQ_ROUTING
ULONG NTAPI HalGetBusDataByOffset(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
VOID NTAPI HalpRegisterInternalBusHandlers(VOID)
#define HAL_SUPPORTED_RANGE_VERSION
#define HAL_PCI_CHIP_HACK_DISABLE_HIBERNATE
BOOLEAN NTAPI HalpIsValidPCIDevice(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot)
_In_opt_ PUNICODE_STRING DriverClassName
#define sprintf(buf, format,...)
#define PCI_SUBCLASS_BR_CARDBUS
BOOLEAN NTAPI HaliTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
_In_ PDEVICE_OBJECT DeviceObject
PPCI_REGISTRY_INFO_INTERNAL NTAPI HalpQueryPciRegistryInfo(VOID)
#define PCI_STATUS_DEVSEL
VOID NTAPI HalpCheckPowerButton(VOID)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define PCI_ADDRESS_MEMORY_ADDRESS_MASK
NTSTATUS NTAPI HalpOpenRegistryKey(IN PHANDLE KeyHandle, IN HANDLE RootKey, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN BOOLEAN Create)
VOID NTAPI HalpUnmapVirtualAddressVista(IN PVOID VirtualAddress, IN PFN_COUNT PageCount, IN BOOLEAN FlushCurrentTLB)
VOID NTAPI HalpPCIPin2ISALine(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciData)
BOOLEAN NTAPI HalpTranslateSystemBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
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)
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)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define HALP_HACK_FLAGS(x)
VOID NTAPI HalpInitBusHandlers(VOID)
VOID NTAPI HalpGetNMICrashFlag(VOID)
struct _PCI_SLOT_NUMBER::@3783::@3784 bits
PCI_CONFIG_HANDLER PCIConfigHandler
struct _PCIPBUSDATA::@1435::@1437 Type2
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
ULONG NTAPI HalGetInterruptVector(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
struct _BUS_HANDLER * ParentHandler
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
VOID NTAPI HalpDebugPciDumpBus(IN ULONG i, IN ULONG j, IN ULONG k, IN PPCI_COMMON_CONFIG PciData)
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
#define HAL_PCI_CHIP_HACK_BROKEN_ACPI_TIMER
#define PCI_TYPE1_ADDRESS_PORT
struct _PCIPBUSDATA * PPCIPBUSDATA
struct _LIST_ENTRY * Flink
#define HALP_CARD_FEATURE_FULL_DECODE
#define HAL_PCI_CHIP_HACK_USB_SMI_DISABLE
GLboolean GLboolean GLboolean b
NTSTATUS NTAPI HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock, IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
_Must_inspect_result_ _In_ ULONG Flags
#define PCI_INVALID_VENDORID
ULONG NTAPI HalpcGetCmosData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
BOOLEAN NTAPI HaliFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
VOID NTAPI HalpInitBusHandler(VOID)
#define NT_SUCCESS(StatCode)
PciReadWriteConfig ReadConfig
static BOOLEAN WarningsGiven[5]
VOID NTAPI HalpRegisterKdSupportFunctions(VOID)
#define PCI_ENABLE_BUS_MASTER
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)
PTRANSLATEBUSADDRESS TranslateBusAddress
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
struct _PCIPBUSDATA::@1435::@1436 Type1
ULONG NTAPI HalpGetPCIIntOnISABus(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
#define HALP_CHECK_CARD_REVISION_ID
#define ExAllocatePoolWithTag(hernya, size, tag)
ULONG NTAPI HalpGetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
#define PCI_STATUS_66MHZ_CAPABLE
VOID NTAPI ShowSize(IN ULONG Size)
VOID NTAPI HalpWritePCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
PASSIGNSLOTRESOURCES AssignSlotResources
BOOLEAN NTAPI HalpIsBridgeDevice(IN PPCI_COMMON_CONFIG PciData)
#define KdMapPhysicalMemory64
#define PCI_SUBCLASS_BR_PCI_TO_PCI
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)
BOOLEAN NTAPI HalpIsIdeDevice(IN PPCI_COMMON_CONFIG PciData)
#define PCI_SUBCLASS_MSC_IDE_CTLR
int _cdecl swprintf(const WCHAR *,...)
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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 KdSetupPciDeviceForDebugging
ULONG NTAPI HalSetBusData(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length)
NTSTATUS NTAPI HalAdjustResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST *ResourceList)
NTSTATUS NTAPI HalpGetChipHacks(IN USHORT VendorId, IN USHORT DeviceId, IN UCHAR RevisionId, IN PULONG HackFlags)
_In_ ULONG _In_ ULONG Offset
#define PCI_TYPE2_FORWARD_PORT
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
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG Vector
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN PFN_COUNT PageCount)
VOID NTAPI HalpInitializePciBus(VOID)
PBUS_HANDLER NTAPI HalpAllocateAndInitPciBusHandler(IN ULONG PciType, IN ULONG BusNo, IN BOOLEAN TestAllocation)
PGETSETBUSDATA SetBusData
PGETINTERRUPTVECTOR GetInterruptVector
BOOLEAN NTAPI HalTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
BOOLEAN NTAPI HalpIsRecognizedCard(IN PPCI_REGISTRY_INFO_INTERNAL PciRegistryInfo, IN PPCI_COMMON_CONFIG PciData, IN ULONG Flags)
ULONG NTAPI HalpGetSystemInterruptVector(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
PCI_CONFIG_HANDLER PCIConfigHandlerType2
union _PCIPBUSDATA::@1435 Config
ULONG NTAPI HalpSetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
#define PCI_TYPE2_ADDRESS_BASE
VOID NTAPI HalpFixupPciSupportedRanges(IN ULONG BusCount)
#define KdCheckPowerButton
static const char VendorName[]
BOOLEAN NTAPI HalpTranslateIsaBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
#define HALP_REVISION_HACK_FLAGS(x)
struct tagContext Context
#define KdReleasePciDeviceforDebugging
#define PCI_ADDRESS_MEMORY_PREFETCHABLE
#define PCI_TYPE1_DATA_PORT
INTERFACE_TYPE InterfaceType
#define PCI_CONFIGURATION_TYPE(PciData)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define HalPciAssignSlotResources
#define InitializeObjectAttributes(p, n, a, r, s)
#define RtlCopyMemory(Destination, Source, Length)
NTSTATUS NTAPI HalpAdjustPCIResourceList(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
PGETSETBUSDATA GetBusData
PADJUSTRESOURCELIST AdjustResourceList
#define PCI_CLASS_BRIDGE_DEV
RTL_BITMAP DeviceConfigured
#define PCI_TYPE1_ADDRESSES
#define PCI_ADDRESS_IO_SPACE
PBUS_HANDLER FASTCALL HaliReferenceHandlerForConfigSpace(IN BUS_DATA_TYPE ConfigType, IN ULONG BusNumber)
#define ExFreePoolWithTag(_P, _T)
BOOLEAN NTAPI HalpGetPciBridgeConfig(IN ULONG PciType, IN PUCHAR BusCount)
ULONG NTAPI HalpcSetCmosData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
ULONG NTAPI HalGetBusData(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
union _PCI_SLOT_NUMBER::@3783 u
NTSTATUS NTAPI HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER PciSlot, OUT PSUPPORTED_RANGE *Range)
#define PCI_CARDBUS_BRIDGE_TYPE
ULONG ConfiguredBits[PCI_MAX_DEVICES *PCI_MAX_FUNCTION/32]
#define PCI_CLASS_MASS_STORAGE_CTLR
VOID NTAPI HalpReadPCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
#define PCI_COMMON_HDR_LENGTH
PCI_CONFIG_HANDLER PCIConfigHandlerType1