74 InterruptResource =
NULL;
115 switch (Partial->
Type)
145 ResourceArray[BarIndex++] = *Partial;
155 InterruptResource = Partial;
200 FullList = (
PVOID)Partial;
204 if (!PciResources)
return FALSE;
210 CurrentDescriptor = &PciResources->
Current[
i];
211 Partial = &ResourceArray[
i];
214 if ((Partial->
Type != CurrentDescriptor->
Type) ||
216 ((Partial->
u.
Generic.Start.QuadPart !=
217 CurrentDescriptor->
u.
Generic.Start.QuadPart) ||
234 DbgPrint(
" Previously unset range\n");
242 CurrentDescriptor->
Type = Partial->
Type;
250 return ((RangeChange) || (
PdoExtension->UpdateHardware));
375 BOOLEAN HaveVga, HaveMemSpace, HaveIoSpace;
376 USHORT BridgeControl, PciCommand;
403 for (
i = 0;
i < 7;
i++)
406 Partial = &PciResources->
Current[
i];
418 if ((
PdoExtension->InterruptPin) && ((HaveMemSpace) || (HaveIoSpace)))
422 if ((InterruptLine) && (InterruptLine != -1))
Count++;
439 if (HaveMemSpace)
Count++;
440 if (HaveIoSpace)
Count += 2;
457 for (
i = 0;
i < 7;
i++)
460 Partial = &PciResources->
Current[
i];
479 Resource->u.Generic.Start.HighPart = 0;
481 Resource->u.Generic.Start.LowPart = 0xA0000;
482 Resource->u.Generic.Length = 0x20000;
492 Resource->u.Port.Start.QuadPart = 0x3B0u;
499 Resource->u.Port.Start.QuadPart = 0x3C0u;
506 if ((
PdoExtension->InterruptPin) && ((HaveMemSpace) || (HaveIoSpace)))
510 if ((InterruptLine) && (InterruptLine != -1))
519 Resource->u.Interrupt.Affinity = -1;
520 Resource->u.Interrupt.Level = InterruptLine;
521 Resource->u.Interrupt.Vector = InterruptLine;
548 DeviceRelations->
Count = 1;
553 *pDeviceRelations = DeviceRelations;
620 DPRINT1(
"PCI - build resource reqs - early out, 0 resources\n");
693 if ((PciHeader.VendorID == 0xE11) &&
694 (PciHeader.DeviceID == 0xA0F7) &&
695 (PciHeader.RevisionID == 17) &&
707 DPRINT1(
"Returning NULL requirements list\n");
718 DPRINT1(
"PciQueryRequirements returning NULL requirements list\n");
750 UCHAR MasterMode, SlaveMode, MasterFixed, SlaveFixed, ProgIf, NewProgIf;
758 ProgIf = PciData->ProgIf;
759 MasterMode = (ProgIf & 1) == 1;
760 MasterFixed = (ProgIf & 2) == 0;
761 SlaveMode = (ProgIf & 4) == 4;
762 SlaveFixed = (ProgIf & 8) == 0;
774 if ((MasterMode != SlaveMode) || (MasterFixed != SlaveFixed))
777 DPRINT1(
"PCI: Warning unsupported IDE controller configuration for VEN_%04x&DEV_%04x!",
784 if ((MasterMode) && (SlaveMode))
787 if ((Initial) || (
PdoExtension->IoSpaceUnderNativeIdeControl))
796 Command &= ~PCI_ENABLE_IO_SPACE;
811 else if (!(MasterFixed) &&
826 ProgIf = PciData->ProgIf | 5;
837 if (NewProgIf == ProgIf)
840 PciData->ProgIf = ProgIf;
844 PciData->u.type0.BaseAddresses[0] = 0;
845 PciData->u.type0.BaseAddresses[1] = 0;
846 PciData->u.type0.BaseAddresses[2] = 0;
847 PciData->u.type0.BaseAddresses[3] = 0;
849 PciData->u.type0.BaseAddresses,
851 u.type0.BaseAddresses),
856 PciData->u.type0.BaseAddresses,
858 u.type0.BaseAddresses),
863 &PciData->u.type0.InterruptPin,
865 u.type0.InterruptPin),
874 DPRINT1(
"PCI: Warning failed switch to native mode for IDE controller VEN_%04x&DEV_%04x!",
892 ULONG LegacyBaseAddress;
899 switch (OperationType)
912 if ((PciData->VendorID == 0x8086) &&
913 ((PciData->DeviceID == 0x482) || (PciData->DeviceID == 0x484)))
916 PciData->SubClass = PciData->DeviceID == 0x482 ?
949 if ((PciData->VendorID == 0x1045) && (PciData->DeviceID != 0xC621))
952 PciData->ProgIf &= ~5;
953 PciData->u.type0.InterruptPin = 0;
1011 if ((PciData->ProgIf & 5) != 5)
1014 PciData->u.type0.InterruptPin = 0;
1021 !(DeviceExtension->BrokenVideoHackApplied))
1028 if ((PciData->VendorID == 0xE11) &&
1029 (PciData->DeviceID == 0xA0F7) &&
1030 (PciData->RevisionID == 17) &&
1118 PciData->u.type1.MemoryBase = 0xFFFF;
1119 PciData->u.type1.PrefetchBase = 0xFFFF;
1120 PciData->u.type1.IOBase = 0xFF;
1121 PciData->u.type1.IOLimit = 0;
1122 PciData->u.type1.MemoryLimit = 0;
1123 PciData->u.type1.PrefetchLimit = 0;
1124 PciData->u.type1.PrefetchBaseUpper32 = 0;
1125 PciData->u.type1.PrefetchLimitUpper32 = 0;
1126 PciData->u.type1.IOBaseUpper16 = 0;
1127 PciData->u.type1.IOLimitUpper16 = 0;
1145 LegacyBaseAddress = 0;
1158 BOOLEAN IdMatch, RevMatch, SubsysMatch;
1162 IdMatch = (PciData->VendorID == DeviceExtension->VendorId) &&
1163 (PciData->DeviceID == DeviceExtension->DeviceId);
1164 if (!IdMatch)
return FALSE;
1168 (PciData->RevisionID == DeviceExtension->RevisionId);
1169 if (!RevMatch)
return FALSE;
1180 ((DeviceExtension->SubsystemVendorId ==
1181 PciData->u.type0.SubVendorID) &&
1182 (DeviceExtension->SubsystemId ==
1183 PciData->u.type0.SubSystemID));
1204 (Slot.u.bits.DeviceNumber >= 16))
1207 DPRINT1(
" Device (Ven %04x Dev %04x (d=0x%x, f=0x%x)) is a ghost.\n",
1210 Slot.u.bits.DeviceNumber,
1211 Slot.u.bits.FunctionNumber);
1223 ASSERTMSG(
"PCI Skip Function - Operation type unknown.\n",
FALSE);
1237 DPRINT1(
" Vendor %04x, Device %04x has class code of PCI_CLASS_NOT_DEFINED\n",
1249 if ((PciData->VendorID == 0x8086) && (PciData->DeviceID == 8))
break;
1257 DPRINT1(
" Device skipped (not enumerated).\n");
1266 ULONG HeaderType, CapPtr, TargetAgpCapabilityId;
1289 CapPtr = PciData->u.type2.CapabilitiesPtr;
1295 CapPtr = PciData->u.type0.CapabilitiesPtr;
1307 DPRINT1(
"Device has capabilities at: %lx\n", CapPtr);
1322 TargetAgpCapabilityId,
1327 DPRINT1(
"AGP ID: %lx\n", TargetAgpCapabilityId);
1328 PdoExtension->TargetAgpCapabilityId = TargetAgpCapabilityId;
1343 DPRINT1(
"No PM caps, disabling PM\n");
1368 DPRINT1(
"PM Caps Found! Wake Level: %d Power State: %d\n",
1369 WakeLevel,
PdoExtension->PowerState.CurrentDeviceState);
1387 DPRINT1(
"PM is off, so assumed device is: %d based on enables\n",
1418 Current->Command =
Context->Command;
1429 Current->Status =
Context->Status;
1453 Context->Status = Current->Status;
1454 Context->Command = Current->Command;
1457 Current->Status = 0;
1467 Context->Configurator = Configurator;
1526 DPRINT1(
"PCI - CFG space write verify failed at offset 0x%x\n",
Offset);
1560 if (IoDescriptor == &
PdoExtension->Resources->Limit[0])
1563 DPRINT1(
"PCI Resources fail!\n");
1643 for (
PdoExtension = DeviceExtension->ChildBridgePdoList;
1671 USHORT CapOffset, TempOffset;
1684 USHORT SubVendorId, SubSystemId;
1687 DPRINT1(
"PCI Scan Bus: FDO Extension @ 0x%p, Base Bus = 0x%x\n",
1688 DeviceExtension, DeviceExtension->BaseBus);
1694 PdoExtension = DeviceExtension->PhysicalDeviceObject->DeviceExtension;
1705 if (SecondaryBus !=
PdoExtension->Dependent.type1.SecondaryBus)
1713 i = DeviceExtension->BaseBus;
1714 for (
j = 0;
j < MaxDevice;
j++)
1748 DPRINT1(
"Scan Found Device 0x%x (b=0x%x, d=0x%x, f=0x%x)\n",
1760 DPRINT1(
"Device Description \"%S\".\n",
1761 DescriptionText ? DescriptionText :
L"(NULL)");
1782 SubVendorId = PciData->u.type0.SubVendorID;
1783 SubSystemId = PciData->u.type0.SubSystemID;
1791 PciData->RevisionID);
1799 DPRINT1(
"Not allowing PM Because device is critical\n");
1817 DPRINT1(
"Not allowing PM because device is VGA\n");
1861 NewExtension->
VendorId = PciData->VendorID;
1862 NewExtension->
DeviceId = PciData->DeviceID;
1863 NewExtension->
RevisionId = PciData->RevisionID;
1864 NewExtension->
ProgIf = PciData->ProgIf;
1865 NewExtension->
SubClass = PciData->SubClass;
1866 NewExtension->
BaseClass = PciData->BaseClass;
1883 for (BridgeExtension = &DeviceExtension->ChildBridgePdoList;
1885 BridgeExtension = &(*BridgeExtension)->
NextBridge);
1888 *BridgeExtension = NewExtension;
1903 DPRINT1(
"Have BIOS configuration!\n");
1915 if (
BiosData->u.type0.InterruptLine !=
1916 PciData->u.type0.InterruptLine)
1922 u.type0.InterruptLine),
1965 NewExtension->
InterruptPin = PciData->u.type0.InterruptPin;
1996 if (TempOffset != CapOffset)
1999 DPRINT1(
"PCI - Failed to read PCI capability at offset 0x%02x\n",
2001 ASSERT(TempOffset == CapOffset);
2027 Name =
"UNKNOWN CAPABILITY";
2042 if (TempOffset != CapOffset)
2045 DPRINT1(
"- Failed to read capability data. ***\n");
2046 ASSERT(TempOffset == CapOffset);
2051 DPRINT1(
"CAP @%02x ID %02x (%s)\n",
2058 CapOffset = CapHeader.
Next;
2078 ((NewExtension->
VendorId == 0x8086) &&
2079 (NewExtension->
DeviceId == 0x482)))
2086 if (!PciData->CacheLineSize)
2107 if (!(PciData->LatencyTimer) ||
2108 ((TempOffset) && (PciData->LatencyTimer == 64)))
2111 DPRINT1(
"PCI - ScanBus, PDOx %p found unconfigured\n",
2175 DPRINT1(
"PCI - Old device (pdox) %p not found on rescan.\n",
2186 DeviceRelations = *pDeviceRelations;
2201 NewRelations->
Count = 0;
2202 if (DeviceRelations)
2213 DPRINT1(
"PCI QueryDeviceRelations/BusRelations FDOx %p (bus 0x%02x)\n",
2215 DeviceExtension->BaseBus);
2219 ObjectArray = &NewRelations->
Objects[NewRelations->
Count];
2223 DPRINT1(
" QDR PDO %p (x %p)%s\n",
2227 "<Omitted, device flaged not present>" :
"");
2243 DPRINT1(
" QDR Total PDO count = %u (%u already in list)\n",
2244 NewRelations->
Count + PdoCount,
2245 NewRelations->
Count);
2248 NewRelations->
Count += PdoCount;
2249 *pDeviceRelations = NewRelations;
2260 UCHAR NewCacheLineSize, NewLatencyTimer;
2319 PciData.u.type0.InterruptLine =
PdoExtension->RawInterruptLine;
2324 if (PciData.LatencyTimer != NewLatencyTimer)
2327 DPRINT1(
"PCI (pdox %p) changing latency from %02x to %02x.\n",
2329 PciData.LatencyTimer,
2335 if (PciData.CacheLineSize != NewCacheLineSize)
2338 DPRINT1(
"PCI (pdox %p) changing cache line size from %02x to %02x.\n",
2340 PciData.CacheLineSize,
2345 PciData.LatencyTimer =
PdoExtension->SavedLatencyTimer;
2346 PciData.CacheLineSize =
PdoExtension->SavedCacheLineSize;
2347 PciData.u.type0.InterruptLine =
PdoExtension->RawInterruptLine;
2367 PdoExtension->RawInterruptLine = PciData.u.type0.InterruptLine;
VOID NTAPI ario_ApplyBrokenVideoHack(IN PPCI_FDO_EXTENSION FdoExtension)
ULONGLONG NTAPI RtlCmDecodeMemIoResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _Out_opt_ PULONGLONG Start)
PDEVICE_OBJECT PhysicalDeviceObject
VOID NTAPI Cardbus_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Cardbus_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Cardbus_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Cardbus_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI Cardbus_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Cardbus_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI Cardbus_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
FORCEINLINE PCM_PARTIAL_RESOURCE_DESCRIPTOR CmiGetNextPartialDescriptor(_In_ const CM_PARTIAL_RESOURCE_DESCRIPTOR *PartialDescriptor)
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
VOID NTAPI PciDebugPrintPartialResource(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource)
VOID NTAPI PciDebugDumpCommonConfig(IN PPCI_COMMON_HEADER PciData)
VOID NTAPI PciDebugPrintIoResReqList(IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements)
VOID NTAPI PciDebugPrintCmResList(IN PCM_RESOURCE_LIST PartialList)
VOID NTAPI Device_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
VOID NTAPI Device_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI Device_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Device_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Device_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI Device_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI Device_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI PciWriteLimitsAndRestoreCurrent(IN PVOID Reserved, IN PVOID Context2)
VOID NTAPI PciGetEnhancedCapabilities(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
NTSTATUS NTAPI PciSetResources(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN DoReset, IN BOOLEAN SomethingSomethingDarkSide)
BOOLEAN NTAPI PciSkipThisFunction(IN PPCI_COMMON_HEADER PciData, IN PCI_SLOT_NUMBER Slot, IN UCHAR OperationType, IN ULONGLONG HackFlags)
NTSTATUS NTAPI PciBuildRequirementsList(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Buffer)
PCM_RESOURCE_LIST NTAPI PciAllocateCmResourceList(IN ULONG Count, IN ULONG BusNumber)
VOID NTAPI PciProcessBus(IN PPCI_FDO_EXTENSION DeviceExtension)
BOOLEAN NTAPI PcipIsSameDevice(IN PPCI_PDO_EXTENSION DeviceExtension, IN PPCI_COMMON_HEADER PciData)
NTSTATUS NTAPI PciScanBus(IN PPCI_FDO_EXTENSION DeviceExtension)
NTSTATUS NTAPI PciQueryEjectionRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
NTSTATUS NTAPI PciQueryRequirements(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *RequirementsList)
NTSTATUS NTAPI PciQueryTargetDeviceRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
BOOLEAN NTAPI PciConfigureIdeController(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData, IN BOOLEAN Initial)
NTSTATUS NTAPI PciQueryDeviceRelations(IN PPCI_FDO_EXTENSION DeviceExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
NTSTATUS NTAPI PcipGetFunctionLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
VOID NTAPI PcipUpdateHardware(IN PVOID Context, IN PVOID Context2)
PIO_RESOURCE_REQUIREMENTS_LIST PciZeroIoResourceRequirements
VOID NTAPI PciUpdateHardware(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
PIO_RESOURCE_REQUIREMENTS_LIST NTAPI PciAllocateIoRequirementsList(IN ULONG Count, IN ULONG BusNumber, IN ULONG SlotNumber)
PCI_CONFIGURATOR PciConfigurators[]
VOID NTAPI PciApplyHacks(IN PPCI_FDO_EXTENSION DeviceExtension, IN PPCI_COMMON_HEADER PciData, IN PCI_SLOT_NUMBER SlotNumber, IN ULONG OperationType, PPCI_PDO_EXTENSION PdoExtension)
BOOLEAN NTAPI PciComputeNewCurrentSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PCM_RESOURCE_LIST ResourceList)
NTSTATUS NTAPI PciGetFunctionLimits(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER Current, IN ULONGLONG HackFlags)
NTSTATUS NTAPI PciQueryResources(IN PPCI_PDO_EXTENSION PdoExtension, OUT PCM_RESOURCE_LIST *Buffer)
BOOLEAN PciEnableNativeModeATA
VOID NTAPI PciReadSlotConfig(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
NTSYSAPI BOOLEAN InitSafeBootMode
VOID NTAPI PPBridge_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
NTSTATUS NTAPI PciPdoCreate(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, OUT PDEVICE_OBJECT *PdoDeviceObject)
VOID NTAPI PciWriteDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
VOID NTAPI PPBridge_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
@ PciSynchronizedOperation
PWCHAR NTAPI PciGetDeviceDescriptionMessage(IN UCHAR BaseClass, IN UCHAR SubClass)
BOOLEAN NTAPI PciIsSlotPresentInParentMethod(IN PPCI_PDO_EXTENSION PdoExtension, IN ULONG Method)
BOOLEAN PciAssignBusNumbers
struct _PCI_PDO_EXTENSION * PPCI_PDO_EXTENSION
NTSTATUS NTAPI PciCancelStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
PCI_DEVICE_TYPES NTAPI PciClassifyDeviceType(IN PPCI_PDO_EXTENSION PdoExtension)
VOID NTAPI PciGetExpressCapabilities(_Inout_ PPCI_PDO_EXTENSION PdoExtension)
Records the Express capability of a new function and whether its extended configuration space can be ...
NTSTATUS NTAPI PciBeginStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
NTSTATUS NTAPI PciGetBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
VOID NTAPI PPBridge_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
#define PCI_SKIP_RESOURCE_ENUMERATION
#define PCI_HACK_FIXUP_BEFORE_UPDATE
PPCI_PDO_EXTENSION NTAPI PciFindPdoByFunction(IN PPCI_FDO_EXTENSION DeviceExtension, IN ULONG FunctionNumber, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI PPBridge_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
BOOLEAN NTAPI PciIsDeviceOnDebugPath(IN PPCI_PDO_EXTENSION DeviceExtension)
#define PCI_IS_ROOT_FDO(x)
VOID NTAPI PciDecodeEnable(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN Enable, OUT PUSHORT Command)
BOOLEAN NTAPI PciIsCriticalDeviceClass(IN UCHAR BaseClass, IN UCHAR SubClass)
UCHAR NTAPI PciReadDeviceCapability(IN PPCI_PDO_EXTENSION DeviceExtension, IN UCHAR Offset, IN ULONG CapabilityId, OUT PPCI_CAPABILITIES_HEADER Buffer, IN ULONG Length)
NTSTATUS NTAPI PciSetPowerManagedDevicePowerState(IN PPCI_PDO_EXTENSION DeviceExtension, IN DEVICE_POWER_STATE DeviceState, IN BOOLEAN IrpSet)
ULONGLONG NTAPI PciGetHackFlags(IN USHORT VendorId, IN USHORT DeviceId, IN USHORT SubVendorId, IN USHORT SubSystemId, IN UCHAR RevisionId)
VOID NTAPI PPBridge_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
NTSTATUS NTAPI PciSaveBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
UCHAR NTAPI PciGetAdjustedInterruptLine(IN PPCI_PDO_EXTENSION PdoExtension)
VOID NTAPI PPBridge_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
#define PCI_HACK_FIXUP_AFTER_CONFIGURATION
#define PCI_SKIP_DEVICE_ENUMERATION
KIPI_BROADCAST_WORKER PciExecuteCriticalSystemRoutine
#define PCI_HACK_FIXUP_BEFORE_CONFIGURATION
VOID NTAPI PPBridge_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
VOID NTAPI PciReadDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
#define UNIMPLEMENTED_DBGBREAK(...)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define RtlCompareMemory(s1, s2, l)
struct _DEVICE_OBJECT * PDEVICE_OBJECT
#define KeSetEvent(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
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
NTSTATUS NTAPI KdDisableDebugger(VOID)
NTSTATUS NTAPI KdEnableDebugger(VOID)
#define KeLeaveCriticalRegion()
#define KeEnterCriticalRegion()
#define ExFreePoolWithTag(_P, _T)
#define CM_RESOURCE_PORT_POSITIVE_DECODE
#define CM_RESOURCE_MEMORY_READ_WRITE
#define CM_RESOURCE_PORT_10_BIT_DECODE
#define ASSERTMSG(msg, exp)
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG Offset
BOOLEAN NTAPI ExIsProcessorFeaturePresent(IN ULONG ProcessorFeature)
ULONG_PTR NTAPI KeIpiGenericCall(_In_ PKIPI_BROADCAST_WORKER Function, _In_ ULONG_PTR Argument)
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
#define STATUS_DEVICE_DOES_NOT_EXIST
_In_ ULONG _In_ PCI_SLOT_NUMBER PciSlot
#define CmResourceTypeNull
struct _CM_RESOURCE_LIST CM_RESOURCE_LIST
#define CmResourceTypeMemory
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
#define CmResourceTypeDevicePrivate
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR
#define CmResourceTypePort
#define CmResourceTypeInterrupt
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
#define PCI_HACK_PRESERVE_COMMAND
#define PCI_HACK_CRITICAL_DEVICE
#define PCI_ENABLE_BRIDGE_VGA
#define PCI_HACK_ENUM_NO_RESOURCE
#define PCI_HACK_NO_REVISION_AFTER_D3
#define PCI_HACK_NOT_CRITICAL_DEVICE
#define PCI_HACK_ONE_CHILD
#define PCI_HACK_NO_SUBSYSTEM_AFTER_D3
#define PCI_HACK_NO_SUBSYSTEM
#define PCI_HACK_FAKE_CLASS_CODE
#define PCI_HACK_VIDEO_LEGACY_DECODE
#define PCI_HACK_NO_ENUM_AT_ALL
#define PCI_HACK_DISABLE_IDE_NATIVE_MODE
#define PCI_HACK_NEVER_POWER_DOWN
#define PCI_HACK_DOUBLE_DECKER
#define PCI_HACK_BROKEN_SUBTRACTIVE_DECODE
#define PCI_HACK_NO_PM_CAPS
#define PCI_HACK_KEEP_DECODES_ON_STOP
CM_PARTIAL_RESOURCE_LIST PartialResourceList
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486::@487 Generic
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486::@489 Interrupt
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486::@493 DevicePrivate
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486 u
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
PDEVICE_OBJECT Objects[1]
PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS ChangeResourceSettings
PCI_CONFIGURATOR_SAVE_LIMITS SaveLimits
PCI_CONFIGURATOR_RESET_DEVICE ResetDevice
PCI_CONFIGURATOR_INITIALIZE Initialize
PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS SaveCurrentSettings
IO_RESOURCE_DESCRIPTOR Limit[7]
CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7]
PCI_IPI_FUNCTION Function
BOOLEAN AdjustedInterruptLine
BOOLEAN SavedCacheLineSize
BOOLEAN SavedLatencyTimer
struct _PCI_PDO_EXTENSION * NextBridge
BOOLEAN NeedsHotPlugConfiguration
BOOLEAN ExpectedWritebackFailure
union _PCI_SLOT_NUMBER::@4969 u
struct _PCI_SLOT_NUMBER::@4969::@4970 bits
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ WDFIORESREQLIST RequirementsList
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
_Reserved_ PVOID Reserved
@ CmResourceShareDeviceExclusive
@ CmResourceShareDriverExclusive
#define CmResourceTypeMemoryLarge
#define PCI_INVALID_VENDORID
#define PCI_CAPABILITY_ID_AGP
#define PCI_CAPABILITY_ID_PCIX
#define PCI_ENABLE_BUS_MASTER
#define PCI_ENABLE_WRITE_AND_INVALIDATE
#define PCI_SUBCLASS_BR_EISA
#define PCI_SUBCLASS_BR_HOST
#define PCI_TYPE0_ADDRESSES
#define PCI_ENABLE_IO_SPACE
#define PCI_SUBCLASS_BR_PCI_TO_PCI
#define PCI_CLASS_MASS_STORAGE_CTLR
struct _PCI_AGP_CAPABILITY PCI_AGP_CAPABILITY
#define PCI_SUBCLASS_SYS_OTHER
#define PCI_CONFIGURATION_TYPE(PciData)
#define PCI_SUBCLASS_MSC_IDE_CTLR
#define PCI_ENABLE_MEMORY_SPACE
#define PCI_SUBCLASS_BR_MCA
struct _PCI_PM_CAPABILITY PCI_PM_CAPABILITY
#define PCI_COMMON_HDR_LENGTH
#define PCI_SUBCLASS_BR_ISA
#define PCI_CLASS_BRIDGE_DEV
#define PCI_SUBCLASS_BR_CARDBUS
#define PCI_STATUS_CAPABILITIES_LIST
#define PCI_CAPABILITY_ID_POWER_MANAGEMENT
#define PCI_CLASS_NOT_DEFINED
#define PCI_CLASS_BASE_SYSTEM_DEV
#define PCI_CAPABILITY_ID_AGP_TARGET
#define PCI_MULTIFUNCTION_DEVICE(PciData)
#define PCI_CLASS_DISPLAY_CTLR
#define PCI_CARDBUS_BRIDGE_TYPE
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST
_In_ LONG _In_ LONG Limit
#define ObReferenceObject