ReactOS  0.4.14-dev-114-gc8cbd56
pci.h
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS PCI Bus Driver
3  * LICENSE: BSD - See COPYING.ARM in the top level directory
4  * FILE: drivers/bus/pci/pci.h
5  * PURPOSE: Main Header File
6  * PROGRAMMERS: ReactOS Portable Systems Group
7  */
8 
9 #ifndef _PCIX_PCH_
10 #define _PCIX_PCH_
11 
12 #include <ntifs.h>
13 #include <wdmguid.h>
14 #include <wchar.h>
15 #include <acpiioct.h>
16 #include <drivers/pci/pci.h>
17 #include <drivers/acpi/acpi.h>
18 #include <ndk/halfuncs.h>
19 #include <ndk/rtlfuncs.h>
20 #include <ndk/vffuncs.h>
21 
22 //
23 // Tag used in all pool allocations (Pci Bus)
24 //
25 #define PCI_POOL_TAG 'BicP'
26 
27 //
28 // Checks if the specified FDO is the FDO for the Root PCI Bus
29 //
30 #define PCI_IS_ROOT_FDO(x) ((x)->BusRootFdoExtension == x)
31 
32 //
33 // Assertions to make sure we are dealing with the right kind of extension
34 //
35 #define ASSERT_FDO(x) ASSERT((x)->ExtensionType == PciFdoExtensionType);
36 #define ASSERT_PDO(x) ASSERT((x)->ExtensionType == PciPdoExtensionType);
37 
38 //
39 // PCI Hack Entry Name Lengths
40 //
41 #define PCI_HACK_ENTRY_SIZE sizeof(L"VVVVdddd") - sizeof(UNICODE_NULL)
42 #define PCI_HACK_ENTRY_REV_SIZE sizeof(L"VVVVddddRR") - sizeof(UNICODE_NULL)
43 #define PCI_HACK_ENTRY_SUBSYS_SIZE sizeof(L"VVVVddddssssIIII") - sizeof(UNICODE_NULL)
44 #define PCI_HACK_ENTRY_FULL_SIZE sizeof(L"VVVVddddssssIIIIRR") - sizeof(UNICODE_NULL)
45 
46 //
47 // PCI Hack Entry Flags
48 //
49 #define PCI_HACK_HAS_REVISION_INFO 0x01
50 #define PCI_HACK_HAS_SUBSYSTEM_INFO 0x02
51 
52 //
53 // PCI Interface Flags
54 //
55 #define PCI_INTERFACE_PDO 0x01
56 #define PCI_INTERFACE_FDO 0x02
57 #define PCI_INTERFACE_ROOT 0x04
58 
59 //
60 // PCI Skip Function Flags
61 //
62 #define PCI_SKIP_DEVICE_ENUMERATION 0x01
63 #define PCI_SKIP_RESOURCE_ENUMERATION 0x02
64 
65 //
66 // PCI Apply Hack Flags
67 //
68 #define PCI_HACK_FIXUP_BEFORE_CONFIGURATION 0x00
69 #define PCI_HACK_FIXUP_AFTER_CONFIGURATION 0x01
70 #define PCI_HACK_FIXUP_BEFORE_UPDATE 0x03
71 
72 //
73 // PCI Debugging Device Support
74 //
75 #define MAX_DEBUGGING_DEVICES_SUPPORTED 0x04
76 
77 //
78 // PCI Driver Verifier Failures
79 //
80 #define PCI_VERIFIER_CODES 0x04
81 
82 //
83 // PCI ID Buffer ANSI Strings
84 //
85 #define MAX_ANSI_STRINGS 0x08
86 
87 //
88 // Device Extension, Interface, Translator and Arbiter Signatures
89 //
90 typedef enum _PCI_SIGNATURE
91 {
94  PciArb_Io = 'icP2',
95  PciArb_Memory = 'icP3',
96  PciArb_Interrupt = 'icP4',
97  PciArb_BusNumber = 'icP5',
109 
110 //
111 // Driver-handled PCI Device Types
112 //
113 typedef enum _PCI_DEVICE_TYPES
114 {
121 
122 //
123 // Device Extension Logic States
124 //
125 typedef enum _PCI_STATE
126 {
134 } PCI_STATE;
135 
136 //
137 // IRP Dispatch Logic Style
138 //
140 {
146 
147 //
148 // PCI Hack Entry Information
149 //
150 typedef struct _PCI_HACK_ENTRY
151 {
160 
161 //
162 // Power State Information for Device Extension
163 //
164 typedef struct _PCI_POWER_STATE
165 {
177 
178 //
179 // Internal PCI Lock Structure
180 //
181 typedef struct _PCI_LOCK
182 {
185 } PCI_LOCK, *PPCI_LOCK;
186 
187 //
188 // Device Extension for a Bus FDO
189 //
190 typedef struct _PCI_FDO_EXTENSION
191 {
221  struct
222  {
231 
233 {
237 
239 {
240  struct
241  {
243  } type0;
244  struct
245  {
254  } type1;
255  struct
256  {
257  UCHAR Spare[4];
258  } type2;
260 
261 typedef struct _PCI_PDO_EXTENSION
262 {
268 
319 
320 //
321 // IRP Dispatch Function Type
322 //
324  IN PIRP Irp,
325  IN PIO_STACK_LOCATION IoStackLocation,
326  IN PVOID DeviceExtension
327 );
328 
329 //
330 // IRP Dispatch Minor Table
331 //
333 {
337 
338 //
339 // IRP Dispatch Major Table
340 //
342 {
352 
353 //
354 // Generic PCI Interface Constructor and Initializer
355 //
356 struct _PCI_INTERFACE;
357 typedef NTSTATUS (NTAPI *PCI_INTERFACE_CONSTRUCTOR)(
358  IN PVOID DeviceExtension,
361  IN USHORT Version,
362  IN USHORT Size,
364 );
365 
368 );
369 
370 //
371 // Generic PCI Interface (Interface, Translator, Arbiter)
372 //
373 typedef struct _PCI_INTERFACE
374 {
382  PCI_INTERFACE_CONSTRUCTOR Constructor;
385 
386 //
387 // Generic Secondary Extension Instance Header (Interface, Translator, Arbiter)
388 //
390 {
395 
396 //
397 // PCI Arbiter Instance
398 //
399 typedef struct PCI_ARBITER_INSTANCE
400 {
405  //ARBITER_INSTANCE CommonInstance; FIXME: Need Arbiter Headers
407 
408 //
409 // PCI Verifier Data
410 //
411 typedef struct _PCI_VERIFIER_DATA
412 {
418 
419 //
420 // PCI ID Buffer Descriptor
421 //
422 typedef struct _PCI_ID_BUFFER
423 {
431 
432 //
433 // PCI Configuration Callbacks
434 //
436 
437 typedef VOID (NTAPI *PCI_CONFIGURATOR_INITIALIZE)(
439 );
440 
443 );
444 
447 );
448 
451 );
452 
456 );
457 
461  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
462 );
463 
467 );
468 
469 //
470 // PCI Configurator
471 //
472 typedef struct _PCI_CONFIGURATOR
473 {
474  PCI_CONFIGURATOR_INITIALIZE Initialize;
482 
483 //
484 // PCI Configurator Context
485 //
487 {
496 
497 //
498 // PCI IPI Function
499 //
501  IN PVOID Reserved,
503 );
504 
505 //
506 // PCI IPI Context
507 //
508 typedef struct _PCI_IPI_CONTEXT
509 {
516 
517 //
518 // PCI Legacy Device Location Cache
519 //
520 typedef struct _PCI_LEGACY_DEVICE
521 {
534 
535 //
536 // IRP Dispatch Routines
537 //
538 
540 
541 NTSTATUS
542 NTAPI
545  IN PIRP Irp
546 );
547 
548 NTSTATUS
549 NTAPI
551  IN PIRP Irp,
552  IN PIO_STACK_LOCATION IoStackLocation,
553  IN PPCI_FDO_EXTENSION DeviceExtension
554 );
555 
556 NTSTATUS
557 NTAPI
559  IN PPCI_FDO_EXTENSION DeviceExtension,
560  IN PIRP Irp
561 );
562 
563 NTSTATUS
564 NTAPI
566  IN PPCI_FDO_EXTENSION DeviceExtension,
567  IN PIRP Irp
568 );
569 
570 NTSTATUS
571 NTAPI
573  IN PIRP Irp,
574  IN PIO_STACK_LOCATION IoStackLocation,
575  IN PPCI_FDO_EXTENSION DeviceExtension
576 );
577 
578 //
579 // Power Routines
580 //
581 NTSTATUS
582 NTAPI
584  IN PIRP Irp,
585  IN PIO_STACK_LOCATION IoStackLocation,
586  IN PPCI_FDO_EXTENSION DeviceExtension
587 );
588 
589 NTSTATUS
590 NTAPI
592  IN PIRP Irp,
593  IN PIO_STACK_LOCATION IoStackLocation,
594  IN PPCI_FDO_EXTENSION DeviceExtension
595 );
596 
597 NTSTATUS
598 NTAPI
600  IN PIRP Irp,
601  IN PIO_STACK_LOCATION IoStackLocation,
602  IN PPCI_FDO_EXTENSION DeviceExtension
603 );
604 
605 NTSTATUS
606 NTAPI
608  IN PPCI_PDO_EXTENSION DeviceExtension,
609  IN DEVICE_POWER_STATE DeviceState,
610  IN BOOLEAN IrpSet
611 );
612 
613 //
614 // Bus FDO Routines
615 //
616 
617 DRIVER_ADD_DEVICE PciAddDevice;
618 
619 NTSTATUS
620 NTAPI
624 );
625 
626 NTSTATUS
627 NTAPI
629  IN PIRP Irp,
630  IN PIO_STACK_LOCATION IoStackLocation,
631  IN PPCI_FDO_EXTENSION DeviceExtension
632 );
633 
634 NTSTATUS
635 NTAPI
637  IN PIRP Irp,
638  IN PIO_STACK_LOCATION IoStackLocation,
639  IN PPCI_FDO_EXTENSION DeviceExtension
640 );
641 
642 NTSTATUS
643 NTAPI
645  IN PIRP Irp,
646  IN PIO_STACK_LOCATION IoStackLocation,
647  IN PPCI_FDO_EXTENSION DeviceExtension
648 );
649 
650 NTSTATUS
651 NTAPI
653  IN PIRP Irp,
654  IN PIO_STACK_LOCATION IoStackLocation,
655  IN PPCI_FDO_EXTENSION DeviceExtension
656 );
657 
658 NTSTATUS
659 NTAPI
661  IN PIRP Irp,
662  IN PIO_STACK_LOCATION IoStackLocation,
663  IN PPCI_FDO_EXTENSION DeviceExtension
664 );
665 
666 NTSTATUS
667 NTAPI
669  IN PIRP Irp,
670  IN PIO_STACK_LOCATION IoStackLocation,
671  IN PPCI_FDO_EXTENSION DeviceExtension
672 );
673 
674 NTSTATUS
675 NTAPI
677  IN PIRP Irp,
678  IN PIO_STACK_LOCATION IoStackLocation,
679  IN PPCI_FDO_EXTENSION DeviceExtension
680 );
681 
682 NTSTATUS
683 NTAPI
685  IN PIRP Irp,
686  IN PIO_STACK_LOCATION IoStackLocation,
687  IN PPCI_FDO_EXTENSION DeviceExtension
688 );
689 
690 NTSTATUS
691 NTAPI
693  IN PIRP Irp,
694  IN PIO_STACK_LOCATION IoStackLocation,
695  IN PPCI_FDO_EXTENSION DeviceExtension
696 );
697 
698 NTSTATUS
699 NTAPI
701  IN PIRP Irp,
702  IN PIO_STACK_LOCATION IoStackLocation,
703  IN PPCI_FDO_EXTENSION DeviceExtension
704 );
705 
706 NTSTATUS
707 NTAPI
709  IN PIRP Irp,
710  IN PIO_STACK_LOCATION IoStackLocation,
711  IN PPCI_FDO_EXTENSION DeviceExtension
712 );
713 
714 NTSTATUS
715 NTAPI
717  IN PIRP Irp,
718  IN PIO_STACK_LOCATION IoStackLocation,
719  IN PPCI_FDO_EXTENSION DeviceExtension
720 );
721 
722 NTSTATUS
723 NTAPI
725  IN PIRP Irp,
726  IN PIO_STACK_LOCATION IoStackLocation,
727  IN PPCI_FDO_EXTENSION DeviceExtension
728 );
729 
730 //
731 // Device PDO Routines
732 //
733 NTSTATUS
734 NTAPI
736  IN PPCI_FDO_EXTENSION DeviceExtension,
737  IN PCI_SLOT_NUMBER Slot,
739 );
740 
741 NTSTATUS
742 NTAPI
744  IN PIRP Irp,
745  IN PIO_STACK_LOCATION IoStackLocation,
746  IN PPCI_PDO_EXTENSION DeviceExtension
747 );
748 
749 NTSTATUS
750 NTAPI
752  IN PIRP Irp,
753  IN PIO_STACK_LOCATION IoStackLocation,
754  IN PPCI_PDO_EXTENSION DeviceExtension
755 );
756 
757 NTSTATUS
758 NTAPI
760  IN PIRP Irp,
761  IN PIO_STACK_LOCATION IoStackLocation,
762  IN PPCI_PDO_EXTENSION DeviceExtension
763 );
764 
765 NTSTATUS
766 NTAPI
768  IN PIRP Irp,
769  IN PIO_STACK_LOCATION IoStackLocation,
770  IN PPCI_PDO_EXTENSION DeviceExtension
771 );
772 
773 NTSTATUS
774 NTAPI
776  IN PIRP Irp,
777  IN PIO_STACK_LOCATION IoStackLocation,
778  IN PPCI_PDO_EXTENSION DeviceExtension
779 );
780 
781 NTSTATUS
782 NTAPI
784  IN PIRP Irp,
785  IN PIO_STACK_LOCATION IoStackLocation,
786  IN PPCI_PDO_EXTENSION DeviceExtension
787 );
788 
789 NTSTATUS
790 NTAPI
792  IN PIRP Irp,
793  IN PIO_STACK_LOCATION IoStackLocation,
794  IN PPCI_PDO_EXTENSION DeviceExtension
795 );
796 
797 NTSTATUS
798 NTAPI
800  IN PIRP Irp,
801  IN PIO_STACK_LOCATION IoStackLocation,
802  IN PPCI_PDO_EXTENSION DeviceExtension
803 );
804 
805 NTSTATUS
806 NTAPI
808  IN PIRP Irp,
809  IN PIO_STACK_LOCATION IoStackLocation,
810  IN PPCI_PDO_EXTENSION DeviceExtension
811 );
812 
813 NTSTATUS
814 NTAPI
816  IN PIRP Irp,
817  IN PIO_STACK_LOCATION IoStackLocation,
818  IN PPCI_PDO_EXTENSION DeviceExtension
819 );
820 
821 NTSTATUS
822 NTAPI
824  IN PIRP Irp,
825  IN PIO_STACK_LOCATION IoStackLocation,
826  IN PPCI_PDO_EXTENSION DeviceExtension
827 );
828 
829 NTSTATUS
830 NTAPI
832  IN PIRP Irp,
833  IN PIO_STACK_LOCATION IoStackLocation,
834  IN PPCI_PDO_EXTENSION DeviceExtension
835 );
836 
837 NTSTATUS
838 NTAPI
840  IN PIRP Irp,
841  IN PIO_STACK_LOCATION IoStackLocation,
842  IN PPCI_PDO_EXTENSION DeviceExtension
843 );
844 
845 NTSTATUS
846 NTAPI
848  IN PIRP Irp,
849  IN PIO_STACK_LOCATION IoStackLocation,
850  IN PPCI_PDO_EXTENSION DeviceExtension
851 );
852 
853 NTSTATUS
854 NTAPI
856  IN PIRP Irp,
857  IN PIO_STACK_LOCATION IoStackLocation,
858  IN PPCI_PDO_EXTENSION DeviceExtension
859 );
860 
861 NTSTATUS
862 NTAPI
864  IN PIRP Irp,
865  IN PIO_STACK_LOCATION IoStackLocation,
866  IN PPCI_PDO_EXTENSION DeviceExtension
867 );
868 
869 NTSTATUS
870 NTAPI
872  IN PIRP Irp,
873  IN PIO_STACK_LOCATION IoStackLocation,
874  IN PPCI_PDO_EXTENSION DeviceExtension
875 );
876 
877 NTSTATUS
878 NTAPI
880  IN PIRP Irp,
881  IN PIO_STACK_LOCATION IoStackLocation,
882  IN PPCI_PDO_EXTENSION DeviceExtension
883 );
884 
885 NTSTATUS
886 NTAPI
888  IN PIRP Irp,
889  IN PIO_STACK_LOCATION IoStackLocation,
890  IN PPCI_PDO_EXTENSION DeviceExtension
891 );
892 
893 NTSTATUS
894 NTAPI
896  IN PIRP Irp,
897  IN PIO_STACK_LOCATION IoStackLocation,
898  IN PPCI_PDO_EXTENSION DeviceExtension
899 );
900 
901 NTSTATUS
902 NTAPI
904  IN PIRP Irp,
905  IN PIO_STACK_LOCATION IoStackLocation,
906  IN PPCI_PDO_EXTENSION DeviceExtension
907 );
908 
909 NTSTATUS
910 NTAPI
912  IN PIRP Irp,
913  IN PIO_STACK_LOCATION IoStackLocation,
914  IN PPCI_PDO_EXTENSION DeviceExtension
915 );
916 
917 NTSTATUS
918 NTAPI
920  IN PIRP Irp,
921  IN PIO_STACK_LOCATION IoStackLocation,
922  IN PPCI_PDO_EXTENSION DeviceExtension
923 );
924 
925 NTSTATUS
926 NTAPI
928  IN PIRP Irp,
929  IN PIO_STACK_LOCATION IoStackLocation,
930  IN PPCI_PDO_EXTENSION DeviceExtension
931 );
932 
933 
934 //
935 // HAL Callback/Hook Routines
936 //
937 VOID
938 NTAPI
939 PciHookHal(
940  VOID
941 );
942 
943 //
944 // PCI Verifier Routines
945 //
946 VOID
947 NTAPI
950 );
951 
953 NTAPI
955  IN ULONG FailureCode
956 );
957 
958 //
959 // Utility Routines
960 //
961 BOOLEAN
962 NTAPI
964  IN PWCHAR String,
966 );
967 
968 BOOLEAN
969 NTAPI
971  VOID
972 );
973 
974 NTSTATUS
975 NTAPI
977  VOID
978 );
979 
980 BOOLEAN
981 NTAPI
983  IN PUNICODE_STRING InputString,
984  IN PCUNICODE_STRING EqualString,
986 );
987 
988 BOOLEAN
989 NTAPI
990 PciOpenKey(
991  IN PWCHAR KeyName,
992  IN HANDLE RootKey,
995  OUT PNTSTATUS KeyStatus
996 );
997 
998 NTSTATUS
999 NTAPI
1002  IN PWCHAR KeyName,
1003  IN HANDLE RootHandle,
1004  IN ULONG Type,
1006  OUT PULONG OutputLength
1007 );
1008 
1010 NTAPI
1013  IN PKEVENT Lock
1014 );
1015 
1016 VOID
1017 NTAPI
1019  IN PSINGLE_LIST_ENTRY ListHead,
1020  IN PPCI_FDO_EXTENSION DeviceExtension,
1021  IN PKEVENT Lock
1022 );
1023 
1024 NTSTATUS
1025 NTAPI
1030 );
1031 
1032 NTSTATUS
1033 NTAPI
1034 PciSendIoctl(
1041 );
1042 
1043 VOID
1044 NTAPI
1047  IN PVOID Lock,
1048  IN PPCI_SECONDARY_EXTENSION SecondaryExtension,
1049  IN PCI_SIGNATURE ExtensionType,
1050  IN PVOID Destructor
1051 );
1052 
1054 NTAPI
1056  IN PSINGLE_LIST_ENTRY ListHead,
1057  IN PCI_SIGNATURE ExtensionType
1058 );
1059 
1060 ULONGLONG
1061 NTAPI
1063  IN USHORT VendorId,
1064  IN USHORT DeviceId,
1065  IN USHORT SubVendorId,
1066  IN USHORT SubSystemId,
1067  IN UCHAR RevisionId
1068 );
1069 
1071 NTAPI
1073  IN PPCI_FDO_EXTENSION DeviceExtension,
1074  IN ULONG FunctionNumber,
1075  IN PPCI_COMMON_HEADER PciData
1076 );
1077 
1078 BOOLEAN
1079 NTAPI
1081  IN UCHAR BaseClass,
1082  IN UCHAR SubClass
1083 );
1084 
1085 BOOLEAN
1086 NTAPI
1088  IN PPCI_PDO_EXTENSION DeviceExtension
1089 );
1090 
1091 NTSTATUS
1092 NTAPI
1094  IN PPCI_PDO_EXTENSION DeviceExtension,
1095  OUT PPCI_COMMON_HEADER PciData
1096 );
1097 
1098 NTSTATUS
1099 NTAPI
1101  IN PPCI_PDO_EXTENSION DeviceExtension,
1102  OUT PPCI_COMMON_HEADER PciData
1103 );
1104 
1105 UCHAR
1106 NTAPI
1108  IN PPCI_PDO_EXTENSION DeviceExtension,
1109  IN UCHAR Offset,
1110  IN ULONG CapabilityId,
1112  IN ULONG Length
1113 );
1114 
1115 BOOLEAN
1116 NTAPI
1118  IN PPCI_PDO_EXTENSION DeviceExtension,
1120  IN ULONGLONG HackFlags,
1121  IN BOOLEAN ForPowerDown
1122 );
1123 
1125 NTAPI
1128 );
1129 
1130 KIPI_BROADCAST_WORKER PciExecuteCriticalSystemRoutine;
1131 
1132 ULONG_PTR
1133 NTAPI
1135  IN ULONG_PTR IpiContext
1136 );
1137 
1138 BOOLEAN
1139 NTAPI
1141  PIO_RESOURCE_DESCRIPTOR ResourceDescriptor,
1142  IN PULONG BarArray,
1143  IN BOOLEAN Rom
1144 );
1145 
1146 BOOLEAN
1147 NTAPI
1150  IN ULONG Method
1151 );
1152 
1153 VOID
1154 NTAPI
1157  IN BOOLEAN Enable,
1159 );
1160 
1161 NTSTATUS
1162 NTAPI
1166 );
1167 
1168 NTSTATUS
1169 NTAPI
1172  IN OUT PDEVICE_CAPABILITIES DeviceCapability
1173 );
1174 
1176 NTAPI
1178  PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor
1179 );
1180 
1181 //
1182 // Configuration Routines
1183 //
1184 NTSTATUS
1185 NTAPI
1188 );
1189 
1190 VOID
1191 NTAPI
1193  IN PPCI_FDO_EXTENSION DeviceExtension,
1194  IN PCI_SLOT_NUMBER Slot,
1195  IN PVOID Buffer,
1196  IN ULONG Offset,
1197  IN ULONG Length
1198 );
1199 
1200 VOID
1201 NTAPI
1203  IN PPCI_PDO_EXTENSION DeviceExtension,
1204  IN PVOID Buffer,
1205  IN ULONG Offset,
1206  IN ULONG Length
1207 );
1208 
1209 VOID
1210 NTAPI
1212  IN PPCI_PDO_EXTENSION DeviceExtension,
1213  IN PVOID Buffer,
1214  IN ULONG Offset,
1215  IN ULONG Length
1216 );
1217 
1218 UCHAR
1219 NTAPI
1222 );
1223 
1224 //
1225 // State Machine Logic Transition Routines
1226 //
1227 VOID
1228 NTAPI
1230  IN PPCI_FDO_EXTENSION DeviceExtension
1231 );
1232 
1233 NTSTATUS
1234 NTAPI
1236  IN PPCI_FDO_EXTENSION DeviceExtension,
1237  IN PCI_STATE NewState
1238 );
1239 
1240 NTSTATUS
1241 NTAPI
1243  IN PPCI_FDO_EXTENSION DeviceExtension,
1244  IN PCI_STATE NewState
1245 );
1246 
1247 VOID
1248 NTAPI
1250  IN PPCI_FDO_EXTENSION DeviceExtension,
1251  IN PCI_STATE NewState
1252 );
1253 
1254 //
1255 // Arbiter Support
1256 //
1257 NTSTATUS
1258 NTAPI
1261 );
1262 
1263 NTSTATUS
1264 NTAPI
1266  IN PPCI_FDO_EXTENSION DeviceExtension,
1268 );
1269 
1270 //
1271 // Debug Helpers
1272 //
1273 BOOLEAN
1274 NTAPI
1276  IN PIO_STACK_LOCATION IoStackLocation,
1277  IN PPCI_FDO_EXTENSION DeviceExtension,
1278  IN USHORT MaxMinor
1279 );
1280 
1281 VOID
1282 NTAPI
1284  IN PPCI_COMMON_HEADER PciData
1285 );
1286 
1287 VOID
1288 NTAPI
1290  IN PDEVICE_CAPABILITIES DeviceCaps
1291 );
1292 
1293 VOID
1294 NTAPI
1296  IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements
1297 );
1298 
1299 VOID
1300 NTAPI
1303 );
1304 
1305 VOID
1306 NTAPI
1308  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource
1309 );
1310 
1311 //
1312 // Interface Support
1313 //
1314 NTSTATUS
1315 NTAPI
1317  IN PPCI_FDO_EXTENSION DeviceExtension,
1318  IN CONST GUID* InterfaceType,
1319  IN ULONG Size,
1320  IN ULONG Version,
1323  IN BOOLEAN LastChance
1324 );
1325 
1326 NTSTATUS
1327 NTAPI
1329  IN PVOID Instance
1330 );
1331 
1332 NTSTATUS
1333 NTAPI
1335  IN PVOID Instance
1336 );
1337 
1338 NTSTATUS
1339 NTAPI
1341  IN PVOID Instance
1342 );
1343 
1344 NTSTATUS
1345 NTAPI
1347  IN PVOID Instance
1348 );
1349 
1350 NTSTATUS
1351 NTAPI
1353  IN PVOID Instance
1354 );
1355 
1356 NTSTATUS
1357 NTAPI
1359  IN PVOID Instance
1360 );
1361 
1362 NTSTATUS
1363 NTAPI
1365  IN PVOID Instance
1366 );
1367 
1368 NTSTATUS
1369 NTAPI
1371  IN PVOID Instance
1372 );
1373 
1374 NTSTATUS
1375 NTAPI
1377  IN PVOID Instance
1378 );
1379 
1380 NTSTATUS
1381 NTAPI
1383  IN PVOID Instance
1384 );
1385 
1386 NTSTATUS
1387 NTAPI
1389  IN PVOID Instance
1390 );
1391 
1392 NTSTATUS
1393 NTAPI
1395  IN PVOID Instance
1396 );
1397 
1398 NTSTATUS
1399 NTAPI
1401  IN PVOID DeviceExtension,
1402  IN PVOID Instance,
1404  IN USHORT Version,
1405  IN USHORT Size,
1407 );
1408 
1409 NTSTATUS
1410 NTAPI
1412  IN PVOID DeviceExtension,
1413  IN PVOID Instance,
1415  IN USHORT Version,
1416  IN USHORT Size,
1418 );
1419 
1420 NTSTATUS
1421 NTAPI
1423  IN PVOID DeviceExtension,
1424  IN PVOID Instance,
1426  IN USHORT Version,
1427  IN USHORT Size,
1429 );
1430 
1431 NTSTATUS
1432 NTAPI
1434  IN PVOID DeviceExtension,
1435  IN PVOID Instance,
1437  IN USHORT Version,
1438  IN USHORT Size,
1440 );
1441 
1442 NTSTATUS
1443 NTAPI
1445  IN PVOID DeviceExtension,
1446  IN PVOID Instance,
1448  IN USHORT Version,
1449  IN USHORT Size,
1451 );
1452 
1453 NTSTATUS
1454 NTAPI
1456  IN PVOID DeviceExtension,
1457  IN PVOID Instance,
1459  IN USHORT Version,
1460  IN USHORT Size,
1462 );
1463 
1464 VOID
1465 NTAPI
1468 );
1469 
1470 NTSTATUS
1471 NTAPI
1473  IN PVOID DeviceExtension,
1474  IN PVOID Instance,
1476  IN USHORT Version,
1477  IN USHORT Size,
1479 );
1480 
1481 NTSTATUS
1482 NTAPI
1484  IN PVOID DeviceExtension,
1485  IN PVOID Instance,
1487  IN USHORT Version,
1488  IN USHORT Size,
1490 );
1491 
1492 NTSTATUS
1493 NTAPI
1495  IN PVOID DeviceExtension,
1496  IN PVOID Instance,
1498  IN USHORT Version,
1499  IN USHORT Size,
1501 );
1502 
1503 NTSTATUS
1504 NTAPI
1506  IN PVOID DeviceExtension,
1507  IN PVOID Instance,
1509  IN USHORT Version,
1510  IN USHORT Size,
1512 );
1513 
1514 NTSTATUS
1515 NTAPI
1517  IN PVOID DeviceExtension,
1518  IN PVOID Instance,
1520  IN USHORT Version,
1521  IN USHORT Size,
1523 );
1524 
1525 NTSTATUS
1526 NTAPI
1528  IN PVOID DeviceExtension,
1529  IN PVOID Instance,
1531  IN USHORT Version,
1532  IN USHORT Size,
1534 );
1535 
1536 //
1537 // PCI Enumeration and Resources
1538 //
1539 NTSTATUS
1540 NTAPI
1542  IN PPCI_FDO_EXTENSION DeviceExtension,
1543  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1544 );
1545 
1546 NTSTATUS
1547 NTAPI
1551 );
1552 
1553 NTSTATUS
1554 NTAPI
1557  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1558 );
1559 
1560 NTSTATUS
1561 NTAPI
1564  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1565 );
1566 
1567 NTSTATUS
1568 NTAPI
1571  IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *RequirementsList
1572 );
1573 
1574 BOOLEAN
1575 NTAPI
1579 );
1580 
1581 NTSTATUS
1582 NTAPI
1585  IN BOOLEAN DoReset,
1586  IN BOOLEAN SomethingSomethingDarkSide
1587 );
1588 
1589 NTSTATUS
1590 NTAPI
1593  IN PPCI_COMMON_HEADER PciData,
1595 );
1596 
1597 //
1598 // Identification Functions
1599 //
1600 PWCHAR
1601 NTAPI
1603  IN UCHAR BaseClass,
1604  IN UCHAR SubClass
1605 );
1606 
1607 NTSTATUS
1608 NTAPI
1612  IN ULONG Locale,
1613  OUT PWCHAR *Buffer
1614 );
1615 
1616 NTSTATUS
1617 NTAPI
1618 PciQueryId(
1619  IN PPCI_PDO_EXTENSION DeviceExtension,
1621  OUT PWCHAR *Buffer
1622 );
1623 
1624 //
1625 // CardBUS Support
1626 //
1627 VOID
1628 NTAPI
1631 );
1632 
1633 VOID
1634 NTAPI
1637 );
1638 
1639 VOID
1640 NTAPI
1643 );
1644 
1645 VOID
1646 NTAPI
1649 );
1650 
1651 VOID
1652 NTAPI
1655  IN PPCI_COMMON_HEADER PciData,
1656  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1657 );
1658 
1659 VOID
1660 NTAPI
1663  IN PPCI_COMMON_HEADER PciData
1664 );
1665 
1666 VOID
1667 NTAPI
1670  IN PPCI_COMMON_HEADER PciData
1671 );
1672 
1673 //
1674 // PCI Device Support
1675 //
1676 VOID
1677 NTAPI
1680 );
1681 
1682 VOID
1683 NTAPI
1686 );
1687 
1688 VOID
1689 NTAPI
1692 );
1693 
1694 VOID
1695 NTAPI
1698 );
1699 
1700 VOID
1701 NTAPI
1704  IN PPCI_COMMON_HEADER PciData,
1705  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1706 );
1707 
1708 VOID
1709 NTAPI
1712  IN PPCI_COMMON_HEADER PciData
1713 );
1714 
1715 VOID
1716 NTAPI
1719  IN PPCI_COMMON_HEADER PciData
1720 );
1721 
1722 //
1723 // PCI-to-PCI Bridge Device Support
1724 //
1725 VOID
1726 NTAPI
1729 );
1730 
1731 VOID
1732 NTAPI
1735 );
1736 
1737 VOID
1738 NTAPI
1741 );
1742 
1743 VOID
1744 NTAPI
1747 );
1748 
1749 VOID
1750 NTAPI
1753  IN PPCI_COMMON_HEADER PciData,
1754  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1755 );
1756 
1757 VOID
1758 NTAPI
1761  IN PPCI_COMMON_HEADER PciData
1762 );
1763 
1764 VOID
1765 NTAPI
1768  IN PPCI_COMMON_HEADER PciData
1769 );
1770 
1771 //
1772 // Bus Number Routines
1773 //
1774 BOOLEAN
1775 NTAPI
1778 );
1779 
1780 //
1781 // Routine Interface
1782 //
1783 NTSTATUS
1784 NTAPI
1787  IN ULONG BusNumber,
1791  IN UCHAR BaseClass,
1792  IN UCHAR SubClass,
1795  OUT PDEVICE_OBJECT *pFoundDeviceObject
1796 );
1797 
1798 //
1799 // External Resources
1800 //
1802 extern KEVENT PciGlobalLock;
1803 extern PPCI_INTERFACE PciInterfaces[];
1813 //extern PCI_INTERFACE PciNativeIdeInterface;
1818 extern PWATCHDOG_TABLE WdTable;
1824 
1825 /* Exported by NTOS, should this go in the NDK? */
1827 
1828 #endif /* _PCIX_PCH_ */
PCI_INTERFACE AgpTargetInterface
Definition: agpintrf.c:20
NTSTATUS(NTAPI * PCI_INTERFACE_INITIALIZER)(IN PVOID Instance)
Definition: pci.h:366
NTSTATUS NTAPI locintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: locintrf.c:45
NTSTATUS NTAPI PciFdoIrpStartDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:76
NTSTATUS NTAPI PciGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, OUT PVOID *OutputBuffer)
Definition: utils.c:475
struct PCI_SECONDARY_EXTENSION PCI_SECONDARY_EXTENSION
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
VOID NTAPI ario_ApplyBrokenVideoHack(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: ar_memio.c:104
PVOID Context
Definition: pci.h:514
signed char * PCHAR
Definition: retypes.h:7
Definition: pci.h:150
SINGLE_LIST_ENTRY List
Definition: pci.h:391
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1154
PPCI_VERIFIER_DATA NTAPI PciVerifierRetrieveFailureData(IN ULONG FailureCode)
Definition: pcivrify.c:60
* PNTSTATUS
Definition: strlen.c:14
ULONG Barrier
Definition: pci.h:511
VOID NTAPI PciInsertEntryAtTail(IN PSINGLE_LIST_ENTRY ListHead, IN PPCI_FDO_EXTENSION DeviceExtension, IN PKEVENT Lock)
Definition: utils.c:400
VOID NTAPI PciDebugPrintCmResList(IN PCM_RESOURCE_LIST ResourceList)
Definition: debug.c:364
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
Definition: ndis.h:4711
struct _PCI_MN_DISPATCH_TABLE PCI_MN_DISPATCH_TABLE
struct _PCI_CONFIGURATOR PCI_CONFIGURATOR
BOOLEAN MovedDevice
Definition: pci.h:298
#define IN
Definition: typedefs.h:38
union _PCI_HEADER_TYPE_DEPENDENT PCI_HEADER_TYPE_DEPENDENT
typedef VOID(NTAPI *PCI_CONFIGURATOR_INITIALIZE)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS SaveCurrentSettings
Definition: pci.h:477
NTSTATUS NTAPI PciQueryResources(IN PPCI_PDO_EXTENSION PdoExtension, OUT PCM_RESOURCE_LIST *Buffer)
Definition: enum.c:354
BOOLEAN NTAPI PciIsSlotPresentInParentMethod(IN PPCI_PDO_EXTENSION PdoExtension, IN ULONG Method)
Definition: utils.c:1094
VOID NTAPI Cardbus_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:59
NTSTATUS NTAPI PciFdoIrpQueryPower(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:236
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
USHORT SecondaryStatus
Definition: pci.h:492
BOOLEAN NTAPI PciComputeNewCurrentSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PCM_RESOURCE_LIST ResourceList)
Definition: enum.c:55
BOOLEAN DisablePowerDown
Definition: pci.h:299
VOID NTAPI Cardbus_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: cardbus.c:67
VOID NTAPI PPBridge_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: ppbridge.c:683
UCHAR NTAPI PciReadDeviceCapability(IN PPCI_PDO_EXTENSION DeviceExtension, IN UCHAR Offset, IN ULONG CapabilityId, OUT PPCI_CAPABILITIES_HEADER Buffer, IN ULONG Length)
Definition: utils.c:886
ULONG PnpIrpMaximumMinorFunction
Definition: pci.h:343
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG IoControlCode
Definition: fltkernel.h:1383
static PMEMKEY RootKey
Definition: registry.c:55
Type
Definition: Type.h:6
ULONG StringSize[MAX_ANSI_STRINGS]
Definition: pci.h:426
DEVICE_POWER_STATE DeviceWakeLevel
Definition: pci.h:169
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:449
struct _PCI_VERIFIER_DATA * PPCI_VERIFIER_DATA
VOID NTAPI Device_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:250
struct _PCI_FUNCTION_RESOURCES PCI_FUNCTION_RESOURCES
USHORT VendorId
Definition: pci.h:276
struct PCI_SECONDARY_EXTENSION * PPCI_SECONDARY_EXTENSION
USHORT VendorID
Definition: pci.h:152
struct _PCI_PDO_EXTENSION * NextBridge
Definition: pci.h:311
NTSTATUS NTAPI devpresent_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: devhere.c:45
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
Definition: ntbasedef.h:635
VOID NTAPI PciWriteDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:91
BOOLEAN CacheLineSize
Definition: pci.h:224
NTSTATUS NTAPI armem_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_memio.c:156
VOID NTAPI PPBridge_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:465
BOOLEAN IoSpaceNotRequired
Definition: pci.h:305
PCI_PMC PowerCapabilities
Definition: pci.h:314
UCHAR SubClass
Definition: pci.h:529
LONG BusInterfaceReferenceCount
Definition: pci.h:274
PPCI_IRQ_ROUTING_TABLE PciIrqRoutingTable
Definition: init.c:26
NTSTATUS NTAPI PciInitializeArbiters(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: arb_comn.c:40
NTSTATUS NTAPI PciCacheLegacyDeviceRouting(IN PDEVICE_OBJECT DeviceObject, IN ULONG BusNumber, IN ULONG SlotNumber, IN UCHAR InterruptLine, IN UCHAR InterruptPin, IN UCHAR BaseClass, IN UCHAR SubClass, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PPCI_PDO_EXTENSION PdoExtension, OUT PDEVICE_OBJECT *pFoundDeviceObject)
Definition: routintf.c:70
NTSTATUS NTAPI PciSendIoctl(IN PDEVICE_OBJECT DeviceObject, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength)
Definition: utils.c:531
BOOLEAN RawInterruptLine
Definition: pci.h:287
_In_ PIRP Irp
Definition: csq.h:116
BOOLEAN RevisionId
Definition: pci.h:280
struct _PCI_ID_BUFFER * PPCI_ID_BUFFER
DRIVER_ADD_DEVICE PciAddDevice
Definition: pci.h:617
NTSTATUS NTAPI PciPdoIrpQueryDeviceRelations(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:318
DEVICE_POWER_STATE CurrentDeviceState
Definition: pci.h:167
PCI_DISPATCH_FUNCTION SystemControlIrpDispatchFunction
Definition: pci.h:348
ULONG ExtensionType
Definition: pci.h:264
IO_RESOURCE_DESCRIPTOR Limit[7]
Definition: pci.h:234
PCI_INTERFACE PciLegacyDeviceDetectionInterface
Definition: lddintrf.c:18
BOOLEAN Hibernated
Definition: pci.h:215
struct _PCI_INTERFACE * PPCI_INTERFACE
BOOLEAN BrokenVideoHackApplied
Definition: pci.h:214
char CHAR
Definition: xmlstorage.h:175
NTSTATUS NTAPI agpintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: agpintrf.c:47
struct _PCI_MJ_DISPATCH_TABLE * IrpDispatchTable
Definition: pci.h:194
PCI_FDO_EXTENSION * BridgeFdoExtension
Definition: pci.h:310
NTSTATUS NTAPI PciPdoCreate(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, OUT PDEVICE_OBJECT *PdoDeviceObject)
Definition: pdo.c:530
struct _PCI_INTERFACE PCI_INTERFACE
SINGLE_LIST_ENTRY PciFdoExtensionListHead
Definition: fdo.c:18
PPCI_CONFIGURATOR Configurator
Definition: pci.h:491
BOOLEAN NTAPI PciIsDeviceOnDebugPath(IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: utils.c:751
static int Config(const char **args)
Definition: vfdcmd.c:778
BOOLEAN NTAPI PciIsDatacenter(VOID)
Definition: utils.c:131
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
LONG AgpInterfaceReferenceCount
Definition: pci.h:275
PCI_LOCK Lock
Definition: pci.h:313
NTSTATUS NTAPI arbusno_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_busno.c:46
VOID NTAPI Device_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:218
NTSTATUS NTAPI PciPmeInterfaceConstructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: pmeintf.c:45
BOOLEAN OldIrql
Definition: pci.h:184
CONST GUID * InterfaceType
Definition: pci.h:375
BOOLEAN NotPresent
Definition: pci.h:292
UCHAR InterruptPin
Definition: pci.h:527
NTSTATUS NTAPI PciPdoIrpReadConfig(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:446
PIRP WaitWakeIrp
Definition: pci.h:171
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
Definition: fltkernel.h:1374
NTSTATUS NTAPI PciPdoIrpQueryResources(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:368
_PCI_DEVICE_TYPES
Definition: pci.h:113
BOOLEAN EnablePERR
Definition: pci.h:226
enum _PCI_SIGNATURE PCI_SIGNATURE
USHORT Flags
Definition: pci.h:379
USHORT DeviceID
Definition: pci.h:153
BOOLEAN ExpectedWritebackFailure
Definition: pci.h:294
USHORT CommandEnables
Definition: pci.h:316
BOOLEAN NTAPI PciIsCriticalDeviceClass(IN UCHAR BaseClass, IN UCHAR SubClass)
Definition: utils.c:672
LONG Atom
Definition: pci.h:183
PCI_HEADER_TYPE_DEPENDENT Dependent
Definition: pci.h:307
static WCHAR String[]
Definition: stringtable.c:55
BOOLEAN DeviceState
Definition: pci.h:266
NTSTATUS NTAPI PciPdoIrpQueryPower(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:107
struct _PCI_MN_DISPATCH_TABLE * PPCI_MN_DISPATCH_TABLE
PWATCHDOG_TABLE WdTable
Definition: init.c:27
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT PdoDeviceObject
Definition: hubbusif.h:89
NTSTATUS NTAPI PciPdoIrpWriteConfig(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:460
uint16_t * PWCHAR
Definition: typedefs.h:54
Definition: shell.h:41
NTSTATUS NTAPI PciQueryDeviceRelations(IN PPCI_FDO_EXTENSION DeviceExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:2034
struct _PCI_CONFIGURATOR * PPCI_CONFIGURATOR
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1114
BUS_HANDLER * BusHandler
Definition: pci.h:208
ULONG PowerIrpMaximumMinorFunction
Definition: pci.h:345
BOOLEAN ReportedMissing
Definition: pci.h:293
PCI_INTERFACE PciCardbusPrivateInterface
Definition: cardbus.c:18
NTSTATUS NTAPI PciPmeInterfaceInitializer(IN PVOID Instance)
Definition: pmeintf.c:35
BOOLEAN InterruptPin
Definition: pci.h:286
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
#define NTSYSAPI
Definition: ntoskrnl.h:14
NTSTATUS NTAPI locintrf_Initializer(IN PVOID Instance)
Definition: locintrf.c:35
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
struct _PCI_LEGACY_DEVICE * PPCI_LEGACY_DEVICE
NTSTATUS NTAPI PciBuildRequirementsList(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Buffer)
Definition: enum.c:551
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
BOOLEAN MaxSubordinateBus
Definition: pci.h:207
struct _PCI_POWER_STATE PCI_POWER_STATE
UCHAR Flags
Definition: pci.h:158
VOID NTAPI Cardbus_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:35
VOID(NTAPI * PCI_CONFIGURATOR_RESTORE_CURRENT)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:441
VOID NTAPI PciDebugDumpQueryCapabilities(IN PDEVICE_CAPABILITIES DeviceCaps)
Definition: debug.c:221
PCI_INTERFACE TranslatorInterfaceInterrupt
Definition: tr_irq.c:18
VOID NTAPI PPBridge_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:225
struct _PCI_PDO_EXTENSION * PPCI_PDO_EXTENSION
CHAR InputBuffer[80]
Definition: conmgr.c:33
USHORT SubsystemId
Definition: pci.h:279
BOOLEAN DeviceState
Definition: pci.h:195
VOID NTAPI PciDebugPrintIoResReqList(IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements)
Definition: debug.c:302
LONG ReferenceCount
Definition: pci.h:380
VOID NTAPI PPBridge_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:582
ULONG Count
Definition: pci.h:424
NTSTATUS NTAPI PciSetPowerManagedDevicePowerState(IN PPCI_PDO_EXTENSION DeviceExtension, IN DEVICE_POWER_STATE DeviceState, IN BOOLEAN IrpSet)
Definition: power.c:121
struct _PCI_FDO_EXTENSION * ParentFdoExtension
Definition: pci.h:204
NTSTATUS NTAPI PciInitializeArbiterRanges(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCM_RESOURCE_LIST Resources)
Definition: arb_comn.c:128
BOOLEAN TargetAgpCapabilityId
Definition: pci.h:315
uint32_t ULONG_PTR
Definition: typedefs.h:63
NTSTATUS NTAPI ario_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_memio.c:60
_PCI_SIGNATURE
Definition: pci.h:90
UCHAR NTAPI PciGetAdjustedInterruptLine(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: config.c:24
ULONG FailureCode
Definition: pci.h:413
NTSTATUS NTAPI routeintrf_Initializer(IN PVOID Instance)
Definition: routintf.c:37
_In_ PUNICODE_STRING ValueName
Definition: cmfuncs.h:264
PCI_DISPATCH_FUNCTION OtherIrpDispatchFunction
Definition: pci.h:350
PCI_INTERFACE BusHandlerInterface
Definition: busintrf.c:18
BOOLEAN PciAssignBusNumbers
Definition: config.c:18
NTSTATUS NTAPI PciPdoIrpQueryDeviceState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:474
struct _PCI_FDO_EXTENSION * PPCI_FDO_EXTENSION
VOID NTAPI Cardbus_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: cardbus.c:89
VOID NTAPI PciVerifierInit(IN PDRIVER_OBJECT DriverObject)
Definition: pcivrify.c:94
NTSTATUS NTAPI PciQueryInterface(IN PPCI_FDO_EXTENSION DeviceExtension, IN CONST GUID *InterfaceType, IN ULONG Size, IN ULONG Version, IN PVOID InterfaceData, IN PINTERFACE Interface, IN BOOLEAN LastChance)
Definition: intrface.c:45
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
LONG Hibernate
Definition: pci.h:174
NTSTATUS NTAPI PciFdoIrpCancelStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:194
PDEVICE_OBJECT DeviceObject
Definition: pci.h:523
USHORT InitialCommand
Definition: pci.h:317
PPCI_MN_DISPATCH_TABLE PowerIrpDispatchTable
Definition: pci.h:346
BOOLEAN SubClass
Definition: pci.h:282
struct _PCI_MJ_DISPATCH_TABLE PCI_MJ_DISPATCH_TABLE
PCI_INTERFACE PciLocationInterface
Definition: locintrf.c:18
long LONG
Definition: pedump.c:60
PPCI_PDO_EXTENSION PdoExtension
Definition: pci.h:532
_In_ const STRING _In_ BOOLEAN CaseInSensitive
Definition: rtlfuncs.h:2292
VOID(NTAPI * PCI_CONFIGURATOR_GET_ADDITIONAL_RESOURCE_DESCRIPTORS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: pci.h:458
PCI_POWER_STATE PowerState
Definition: pci.h:306
USHORT SubSystemID
Definition: pci.h:155
NTSTATUS NTAPI pcicbintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: cardbus.c:109
struct _PCI_HEADER_TYPE_DEPENDENT::@601 type0
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:273
VOID NTAPI Cardbus_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:43
KEVENT ChildListLock
Definition: pci.h:201
VOID NTAPI Device_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: device.c:272
VOID NTAPI PPBridge_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: ppbridge.c:673
ROUTING_TOKEN RoutingToken
Definition: pci.h:531
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:217
USHORT SubVendorID
Definition: pci.h:154
enum _PCI_DISPATCH_STYLE PCI_DISPATCH_STYLE
PCI_DEVICE_TYPES NTAPI PciClassifyDeviceType(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: utils.c:1051
VOID NTAPI PciDebugPrintPartialResource(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource)
Definition: debug.c:348
PCI_CONFIGURATOR_INITIALIZE Initialize
Definition: pci.h:474
PCI_INTERFACE_INITIALIZER Initializer
Definition: pci.h:383
VOID NTAPI PciReadDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:107
NTSTATUS NTAPI PciPdoWaitWake(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:79
NTSTATUS NTAPI PciSetResources(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN DoReset, IN BOOLEAN SomethingSomethingDarkSide)
Definition: enum.c:2155
NTSTATUS NTAPI PciFdoIrpDeviceUsageNotification(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:337
unsigned char BOOLEAN
NTSTATUS NTAPI PciGetBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
Definition: utils.c:768
NTSTATUS NTAPI PciQueryDeviceText(IN PPCI_PDO_EXTENSION PdoExtension, IN DEVICE_TEXT_TYPE QueryType, IN ULONG Locale, OUT PWCHAR *Buffer)
Definition: id.c:394
KIPI_BROADCAST_WORKER PciExecuteCriticalSystemRoutine
Definition: pci.h:1130
struct _PCI_PDO_EXTENSION PCI_PDO_EXTENSION
NTSTATUS NTAPI PciSaveBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
USHORT RevisionID
Definition: pci.h:157
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
VOID NTAPI PciDebugDumpCommonConfig(IN PPCI_COMMON_HEADER PciData)
Definition: debug.c:207
NTSTATUS NTAPI PciFdoIrpQueryDeviceRelations(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:208
_PCI_STATE
Definition: pci.h:125
BOOLEAN BaseBus
Definition: pci.h:209
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
BOOLEAN NTAPI PciDebugIrpDispatchDisplay(IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension, IN USHORT MaxMinor)
Definition: debug.c:124
Definition: bufpool.h:45
NTSTATUS NTAPI tranirq_Initializer(IN PVOID Instance)
Definition: tr_irq.c:35
PCI_FUNCTION_RESOURCES * Resources
Definition: pci.h:309
PCI_INTERFACE PciRoutingInterface
Definition: routintf.c:20
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID OutputBuffer
Definition: iofuncs.h:713
BOOLEAN NTAPI PciOpenKey(IN PWCHAR KeyName, IN HANDLE RootKey, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle, OUT PNTSTATUS KeyStatus)
Definition: utils.c:165
ULONGLONG NTAPI PciGetHackFlags(IN USHORT VendorId, IN USHORT DeviceId, IN USHORT SubVendorId, IN USHORT SubSystemId, IN UCHAR RevisionId)
Definition: utils.c:604
PCI_CONFIGURATOR_GET_ADDITIONAL_RESOURCE_DESCRIPTORS GetAdditionalResourceDescriptors
Definition: pci.h:479
typedef NTSTATUS(NTAPI *PCI_INTERFACE_CONSTRUCTOR)(IN PVOID DeviceExtension
NTSTATUS NTAPI PciPdoIrpCancelStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:290
PCI_DISPATCH_STYLE SystemControlIrpDispatchStyle
Definition: pci.h:347
struct _PCI_PDO_EXTENSION * NextHashEntry
Definition: pci.h:312
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:156
NTSTATUS NTAPI tranirq_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: tr_irq.c:45
ULONG BusNumber
Definition: pci.h:524
PCI_INTERFACE ArbiterInterfaceMemory
Definition: ar_memio.c:18
NTSTATUS NTAPI PciFdoIrpCancelRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:152
NTSTATUS NTAPI armem_Initializer(IN PVOID Instance)
Definition: ar_memio.c:144
enum _PCI_STATE PCI_STATE
PCI_CONFIGURATOR_SAVE_LIMITS SaveLimits
Definition: pci.h:476
enum _PCI_DEVICE_TYPES PCI_DEVICE_TYPES
PPCI_PDO_EXTENSION PdoExtension
Definition: pci.h:488
BOOLEAN NTAPI PciCanDisableDecodes(IN PPCI_PDO_EXTENSION DeviceExtension, IN PPCI_COMMON_HEADER Config, IN ULONGLONG HackFlags, IN BOOLEAN ForPowerDown)
Definition: utils.c:955
PVOID Next
Definition: pci.h:263
NTSTATUS NTAPI PciGetConfigHandlers(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: config.c:224
BOOLEAN SavedLatencyTimer
Definition: pci.h:289
PPCI_FDO_EXTENSION BusFdoExtension
Definition: pci.h:403
struct _PCI_IPI_CONTEXT * PPCI_IPI_CONTEXT
PCI_DISPATCH_STYLE OtherIrpDispatchStyle
Definition: pci.h:349
PPCI_SECONDARY_EXTENSION NTAPI PciFindNextSecondaryExtension(IN PSINGLE_LIST_ENTRY ListHead, IN PCI_SIGNATURE ExtensionType)
Definition: utils.c:584
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
BOOLEAN BIOSAllowsIDESwitchToNativeMode
Definition: pci.h:302
PDEVICE_OBJECT FunctionalDeviceObject
Definition: pci.h:199
PCI_CONFIGURATOR_RESTORE_CURRENT RestoreCurrent
Definition: pci.h:475
LONG ChildWaitWakeCount
Definition: pci.h:218
struct _PCI_CONFIGURATOR_CONTEXT PCI_CONFIGURATOR_CONTEXT
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:359
WCHAR InstanceName[24]
Definition: pci.h:404
USHORT MaxVersion
Definition: pci.h:378
PPCI_FDO_EXTENSION NTAPI PciFindParentPciFdoExtension(IN PDEVICE_OBJECT DeviceObject, IN PKEVENT Lock)
Definition: utils.c:340
PPCI_COMMON_HEADER PciData
Definition: pci.h:490
KEVENT PciGlobalLock
Definition: init.c:20
NTSTATUS NTAPI PciFdoWaitWake(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:206
VOID NTAPI PciHookHal(VOID)
Definition: hookhal.c:248
NTSTATUS NTAPI PciPassIrpFromFdoToPdo(IN PPCI_FDO_EXTENSION DeviceExtension, IN PIRP Irp)
Definition: dispatch.c:70
PPCI_FDO_EXTENSION ParentFdoExtension
Definition: pci.h:272
DEVICE_POWER_STATE SystemStateMapping[7]
Definition: pci.h:170
NTSTATUS NTAPI routeintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: routintf.c:47
LIST_ENTRY List
Definition: psmgr.c:57
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOLEAN Fake
Definition: pci.h:210
BOOLEAN NoTouchPmeEnable
Definition: pci.h:295
BOOLEAN PciEnableNativeModeATA
Definition: init.c:24
UCHAR InterruptLine
Definition: pci.h:526
NTSTATUS NTAPI PciFdoIrpStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:166
uint64_t ULONGLONG
Definition: typedefs.h:65
NTSTATUS NTAPI PciFdoIrpRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:138
struct _PCI_HEADER_TYPE_DEPENDENT::@602 type1
struct _PCI_FUNCTION_RESOURCES * PPCI_FUNCTION_RESOURCES
struct _PCI_MJ_DISPATCH_TABLE * PPCI_MJ_DISPATCH_TABLE
NTSTATUS NTAPI PciFdoIrpSurpriseRemoval(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:351
PCI_SECONDARY_EXTENSION Header
Definition: pci.h:401
ULONGLONG HackFlags
Definition: pci.h:156
UCHAR BaseClass
Definition: pci.h:528
NTSTATUS NTAPI PciPdoIrpQueryInterface(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:304
NTSTATUS NTAPI PciQueryCapabilities(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_CAPABILITIES DeviceCapability)
Definition: utils.c:1727
struct _PCI_LEGACY_DEVICE * Next
Definition: pci.h:522
NTSTATUS NTAPI PciCallDownIrpStack(IN PPCI_FDO_EXTENSION DeviceExtension, IN PIRP Irp)
Definition: dispatch.c:39
NTSTATUS NTAPI PciPdoIrpQueryRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:220
NTSTATUS NTAPI PciPdoIrpQueryResourceRequirements(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:383
LONG BusHackFlags
Definition: pci.h:229
DRIVER_DISPATCH PciDispatchIrp
Definition: pci.h:539
union _PCI_HEADER_TYPE_DEPENDENT * PPCI_HEADER_TYPE_DEPENDENT
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
struct PCI_ARBITER_INSTANCE PCI_ARBITER_INSTANCE
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
Definition: nttmapi.h:404
enum _PCI_SIGNATURE * PPCI_SIGNATURE
BOOLEAN Acquired
Definition: pci.h:223
PCI_CONFIGURATOR_RESET_DEVICE ResetDevice
Definition: pci.h:480
PPCI_COMMON_HEADER Current
Definition: pci.h:489
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG SlotNumber
Definition: halfuncs.h:156
PCI_INTERFACE ArbiterInterfaceIo
Definition: ar_memio.c:31
VF_FAILURE_CLASS FailureClass
Definition: pci.h:414
unsigned char UCHAR
Definition: xmlstorage.h:181
PCI_INTERFACE PciDevicePresentInterface
Definition: devhere.c:18
struct _PCI_LOCK * PPCI_LOCK
USHORT MinVersion
Definition: pci.h:377
struct _PCI_VERIFIER_DATA PCI_VERIFIER_DATA
PCHAR DebuggerMessageText
Definition: pci.h:416
NTSTATUS NTAPI PciGetRegistryValue(IN PWCHAR ValueName, IN PWCHAR KeyName, IN HANDLE RootHandle, IN ULONG Type, OUT PVOID *OutputBuffer, OUT PULONG OutputLength)
Definition: utils.c:192
NTSTATUS NTAPI PciPdoIrpSurpriseRemoval(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:502
LONG RunCount
Definition: pci.h:510
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
ULONG ExtensionType
Definition: pci.h:193
NTSTATUS NTAPI PciPdoIrpRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:234
NTSTATUS NTAPI busintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: busintrf.c:45
VOID NTAPI PPBridge_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:620
struct _PCI_LOCK PCI_LOCK
NTSTATUS NTAPI PciFdoSetPowerState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:221
PDRIVER_OBJECT PciDriverObject
Definition: init.c:19
VOID NTAPI Cardbus_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: cardbus.c:79
VOID(NTAPI * PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS)(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: pci.h:453
PPCI_COMMON_CONFIG PreservedConfig
Definition: pci.h:219
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
enum _VF_FAILURE_CLASS VF_FAILURE_CLASS
#define MAX_ANSI_STRINGS
Definition: pci.h:85
NTSTATUS NTAPI PciQueryEjectionRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:538
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
PPCI_PDO_EXTENSION NTAPI PciFindPdoByFunction(IN PPCI_FDO_EXTENSION DeviceExtension, IN ULONG FunctionNumber, IN PPCI_COMMON_HEADER PciData)
Definition: utils.c:695
DRIVER_DISPATCH(nfs41_FsdDispatch)
ULONGLONG HackFlags
Definition: pci.h:308
PPCI_MN_DISPATCH_TABLE PnpIrpDispatchTable
Definition: pci.h:344
struct _PCI_HEADER_TYPE_DEPENDENT::@603 type2
struct _PCI_HACK_ENTRY PCI_HACK_ENTRY
struct _PCI_MJ_DISPATCH_TABLE * IrpDispatchTable
Definition: pci.h:265
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
struct _PCI_LEGACY_DEVICE PCI_LEGACY_DEVICE
PCM_PARTIAL_RESOURCE_DESCRIPTOR NTAPI PciNextPartialDescriptor(PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: utils.c:1769
* PDEVICE_CAPABILITIES
Definition: iotypes.h:928
NTSTATUS NTAPI PciPdoIrpDeviceUsageNotification(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:488
NTSTATUS NTAPI PciCancelStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:145
NTSTATUS NTAPI PciIrpNotSupported(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: dispatch.c:261
NTSTATUS NTAPI PciPdoIrpStartDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:121
PVOID DeviceExtension
Definition: pci.h:512
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
NTSTATUS NTAPI PciPdoSetPowerState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:93
NTSTATUS NTAPI PciQueryTargetDeviceRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:511
PCHAR CharBuffer
Definition: pci.h:428
NTSTATUS NTAPI ario_Initializer(IN PVOID Instance)
Definition: ar_memio.c:48
BOOLEAN SavedCacheLineSize
Definition: pci.h:290
BOOLEAN ArbitersInitialized
Definition: pci.h:213
SINGLE_LIST_ENTRY List
Definition: pci.h:192
BOOLEAN Scanned
Definition: pci.h:212
NTSTATUS NTAPI PciPdoIrpQueryCapabilities(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:352
KEVENT SecondaryExtLock
Definition: pci.h:197
PVOID SavedCancelRoutine
Definition: pci.h:172
ULONG SlotNumber
Definition: pci.h:525
PCI_INTERFACE_CONSTRUCTOR Constructor
Definition: pci.h:382
NTSTATUS NTAPI busintrf_Initializer(IN PVOID Instance)
Definition: busintrf.c:35
struct _PCI_FDO_EXTENSION * BusRootFdoExtension
Definition: pci.h:203
VOID NTAPI Device_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: device.c:283
struct _PCI_IPI_CONTEXT PCI_IPI_CONTEXT
BOOLEAN IoSpaceUnderNativeIdeControl
Definition: pci.h:303
NTSTATUS NTAPI PciPdoIrpQueryId(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:416
_In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: iofuncs.h:1003
unsigned short USHORT
Definition: pedump.c:61
NTSTATUS NTAPI PciPdoIrpQueryDeviceText(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:399
NTSTATUS NTAPI PciBuildDefaultExclusionLists(VOID)
Definition: utils.c:276
PCI_INTERFACE ArbiterInterfaceBusNumber
Definition: ar_busno.c:18
BOOLEAN UpdateHardware
Definition: pci.h:297
BOOLEAN LegacyDriver
Definition: pci.h:296
BOOLEAN CapabilitiesPtr
Definition: pci.h:288
struct PCI_ARBITER_INSTANCE * PPCI_ARBITER_INSTANCE
LONG CrashDump
Definition: pci.h:175
NTSTATUS NTAPI PciPdoIrpCancelRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:248
PCI_SIGNATURE ExtensionType
Definition: pci.h:392
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK DesiredAccess
Definition: create.c:4157
BOOLEAN HeaderType
Definition: pci.h:291
SYSTEM_POWER_STATE CurrentSystemState
Definition: pci.h:166
BOOLEAN EnableSERR
Definition: pci.h:227
struct _PCI_HACK_ENTRY * PPCI_HACK_ENTRY
PCI_SLOT_NUMBER Slot
Definition: pci.h:270
unsigned int * PULONG
Definition: retypes.h:1
BOOLEAN NTAPI PciAreBusNumbersConfigured(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: busno.c:20
NTSTATUS NTAPI PciFdoIrpQueryStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:180
VOID NTAPI Cardbus_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:51
struct _PCI_POWER_STATE * PPCI_POWER_STATE
NTSTATUS NTAPI agpintrf_Initializer(IN PVOID Instance)
Definition: agpintrf.c:37
BOOLEAN NTAPI PciCreateIoDescriptorFromBarLimit(PIO_RESOURCE_DESCRIPTOR ResourceDescriptor, IN PULONG BarArray, IN BOOLEAN Rom)
Definition: utils.c:1175
struct _PCI_PDO_EXTENSION * ChildBridgePdoList
Definition: pci.h:205
NTSTATUS NTAPI PciFdoIrpQueryRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:124
NTSTATUS NTAPI PciPdoIrpQueryLegacyBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:516
IN PVOID Instance
Definition: pci.h:359
struct _PCI_PDO_EXTENSION * ChildPdoList
Definition: pci.h:202
PPCI_INTERFACE Interface
Definition: pci.h:402
VOID NTAPI PcipLinkSecondaryExtension(IN PSINGLE_LIST_ENTRY List, IN PVOID Lock, IN PPCI_SECONDARY_EXTENSION SecondaryExtension, IN PCI_SIGNATURE ExtensionType, IN PVOID Destructor)
Definition: utils.c:459
NTSTATUS NTAPI lddintrf_Initializer(IN PVOID Instance)
Definition: lddintrf.c:35
PDEVICE_OBJECT AttachedDeviceObject
Definition: pci.h:200
struct _PCI_FDO_EXTENSION PCI_FDO_EXTENSION
PCI_INTERFACE PciPmeInterface
Definition: pmeintf.c:18
VOID NTAPI PciReadSlotConfig(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:123
VOID NTAPI PciDecodeEnable(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN Enable, OUT PUSHORT Command)
Definition: utils.c:1267
VOID(NTAPI * PCI_CONFIGURATOR_RESET_DEVICE)(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: pci.h:464
NTSTATUS NTAPI PciFdoIrpQueryInterface(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:235
BOOLEAN LatencyTimer
Definition: pci.h:225
BOOLEAN IDEInNativeMode
Definition: pci.h:301
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:198
PCI_SIGNATURE Signature
Definition: pci.h:381
BOOLEAN OnDebugPath
Definition: pci.h:304
NTSTATUS NTAPI PciPdoIrpQueryStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:276
SYSTEM_POWER_STATE SystemWakeLevel
Definition: pci.h:168
PPCI_INTERFACE PciInterfaces[]
Definition: intrface.c:18
ULONG TotalLength
Definition: pci.h:427
VOID NTAPI PciCommitStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:181
#define OUT
Definition: typedefs.h:39
KEVENT SecondaryExtLock
Definition: pci.h:269
PPCI_HACK_ENTRY PciHackTable
Definition: init.c:28
USHORT SubsystemVendorId
Definition: pci.h:278
NTSYSAPI BOOLEAN InitSafeBootMode
Definition: init.c:68
NTSTATUS NTAPI pcicbintrf_Initializer(IN PVOID Instance)
Definition: cardbus.c:99
BOOLEAN NTAPI PciUnicodeStringStrStr(IN PUNICODE_STRING InputString, IN PCUNICODE_STRING EqualString, IN BOOLEAN CaseInSensitive)
Definition: utils.c:27
BOOLEAN AdjustedInterruptLine
Definition: pci.h:285
NTSTATUS NTAPI PciFdoIrpQueryLegacyBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:365
BOOLEAN ChildDelete
Definition: pci.h:211
PWCHAR NTAPI PciGetDeviceDescriptionMessage(IN UCHAR BaseClass, IN UCHAR SubClass)
Definition: id.c:88
NTSTATUS NTAPI PciQueryRequirements(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *RequirementsList)
Definition: enum.c:583
struct tagContext Context
Definition: acpixf.h:1024
NTSTATUS(NTAPI * PCI_DISPATCH_FUNCTION)(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PVOID DeviceExtension)
Definition: pci.h:323
unsigned int ULONG
Definition: retypes.h:1
struct _PCI_FDO_EXTENSION::@600 HotPlugParameters
NTSTATUS NTAPI PciFdoIrpQueryCapabilities(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:310
IN PVOID IN PVOID InterfaceData
Definition: pci.h:359
CHAR BufferData[256]
Definition: pci.h:429
Definition: pci.h:94
ULONG AssertionControl
Definition: pci.h:415
PCI_POWER_STATE PowerState
Definition: pci.h:216
PCI_DISPATCH_FUNCTION DispatchFunction
Definition: pci.h:335
VOID(NTAPI * PCI_IPI_FUNCTION)(IN PVOID Reserved, IN PVOID Context)
Definition: pci.h:500
BOOLEAN TentativeNextState
Definition: pci.h:267
struct _PCI_CONFIGURATOR_CONTEXT * PPCI_CONFIGURATOR_CONTEXT
NTSTATUS NTAPI devpresent_Initializer(IN PVOID Instance)
Definition: devhere.c:35
PCI_DISPATCH_STYLE DispatchStyle
Definition: pci.h:334
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:271
LONG Paging
Definition: pci.h:173
NTSTATUS NTAPI PciQueryId(IN PPCI_PDO_EXTENSION DeviceExtension, IN BUS_QUERY_ID_TYPE QueryType, OUT PWCHAR *Buffer)
Definition: id.c:200
ANSI_STRING Strings[MAX_ANSI_STRINGS]
Definition: pci.h:425
BOOLEAN NTAPI PciStringToUSHORT(IN PWCHAR String, OUT PUSHORT Value)
Definition: utils.c:61
BOOLEAN NeedsHotPlugConfiguration
Definition: pci.h:300
PPCI_BUS_INTERFACE_STANDARD PciBusInterface
Definition: pci.h:206
VOID NTAPI Device_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: device.c:259
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:530
BOOLEAN ProgIf
Definition: pci.h:281
Definition: pci.h:181
USHORT DeviceId
Definition: pci.h:277
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_LIMITS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:445
PCI_LOCK Lock
Definition: pci.h:220
NTSTATUS NTAPI PciPdoIrpQueryBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:430
BOOLEAN BaseClass
Definition: pci.h:283
unsigned short * PUSHORT
Definition: retypes.h:2
#define CONST
Definition: pedump.c:81
ULONG ACCESS_MASK
Definition: nt_native.h:40
VOID NTAPI PciInitializeState(IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: state.c:88
USHORT MinSize
Definition: pci.h:376
PCI_IPI_FUNCTION Function
Definition: pci.h:513
PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS ChangeResourceSettings
Definition: pci.h:478
VOID NTAPI PPBridge_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: ppbridge.c:628
CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7]
Definition: pci.h:235
VOID NTAPI Device_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:118
NTSTATUS NTAPI PciQueryBusInformation(IN PPCI_PDO_EXTENSION PdoExtension, IN PPNP_BUS_INFORMATION *Buffer)
Definition: utils.c:1316
BOOLEAN AdditionalResourceCount
Definition: pci.h:284
BOOLEAN TentativeNextState
Definition: pci.h:196
NTSTATUS NTAPI lddintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: lddintrf.c:45
NTSTATUS NTAPI PciIrpInvalidDeviceRequest(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: dispatch.c:277
VOID NTAPI Device_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:20
struct _PCI_ID_BUFFER PCI_ID_BUFFER
BOOLEAN PciRunningDatacenter
Definition: init.c:18
NTSTATUS NTAPI arbusno_Initializer(IN PVOID Instance)
Definition: ar_busno.c:35
NTSTATUS NTAPI PciPdoIrpStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:262
_PCI_DISPATCH_STYLE
Definition: pci.h:139
NTSTATUS NTAPI PciBeginStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:97