ReactOS  0.4.15-dev-439-g292f67a
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 #include <arbiter.h>
22 #include <cmreslist.h>
23 
24 //
25 // Tag used in all pool allocations (Pci Bus)
26 //
27 #define PCI_POOL_TAG 'BicP'
28 
29 //
30 // Checks if the specified FDO is the FDO for the Root PCI Bus
31 //
32 #define PCI_IS_ROOT_FDO(x) ((x)->BusRootFdoExtension == x)
33 
34 //
35 // Assertions to make sure we are dealing with the right kind of extension
36 //
37 #define ASSERT_FDO(x) ASSERT((x)->ExtensionType == PciFdoExtensionType);
38 #define ASSERT_PDO(x) ASSERT((x)->ExtensionType == PciPdoExtensionType);
39 
40 //
41 // PCI Hack Entry Name Lengths
42 //
43 #define PCI_HACK_ENTRY_SIZE sizeof(L"VVVVdddd") - sizeof(UNICODE_NULL)
44 #define PCI_HACK_ENTRY_REV_SIZE sizeof(L"VVVVddddRR") - sizeof(UNICODE_NULL)
45 #define PCI_HACK_ENTRY_SUBSYS_SIZE sizeof(L"VVVVddddssssIIII") - sizeof(UNICODE_NULL)
46 #define PCI_HACK_ENTRY_FULL_SIZE sizeof(L"VVVVddddssssIIIIRR") - sizeof(UNICODE_NULL)
47 
48 //
49 // PCI Hack Entry Flags
50 //
51 #define PCI_HACK_HAS_REVISION_INFO 0x01
52 #define PCI_HACK_HAS_SUBSYSTEM_INFO 0x02
53 
54 //
55 // PCI Interface Flags
56 //
57 #define PCI_INTERFACE_PDO 0x01
58 #define PCI_INTERFACE_FDO 0x02
59 #define PCI_INTERFACE_ROOT 0x04
60 
61 //
62 // PCI Skip Function Flags
63 //
64 #define PCI_SKIP_DEVICE_ENUMERATION 0x01
65 #define PCI_SKIP_RESOURCE_ENUMERATION 0x02
66 
67 //
68 // PCI Apply Hack Flags
69 //
70 #define PCI_HACK_FIXUP_BEFORE_CONFIGURATION 0x00
71 #define PCI_HACK_FIXUP_AFTER_CONFIGURATION 0x01
72 #define PCI_HACK_FIXUP_BEFORE_UPDATE 0x03
73 
74 //
75 // PCI Debugging Device Support
76 //
77 #define MAX_DEBUGGING_DEVICES_SUPPORTED 0x04
78 
79 //
80 // PCI Driver Verifier Failures
81 //
82 #define PCI_VERIFIER_CODES 0x04
83 
84 //
85 // PCI ID Buffer ANSI Strings
86 //
87 #define MAX_ANSI_STRINGS 0x08
88 
89 //
90 // Device Extension, Interface, Translator and Arbiter Signatures
91 //
92 typedef enum _PCI_SIGNATURE
93 {
96  PciArb_Io = 'icP2',
97  PciArb_Memory = 'icP3',
98  PciArb_Interrupt = 'icP4',
99  PciArb_BusNumber = 'icP5',
111 
112 //
113 // Driver-handled PCI Device Types
114 //
115 typedef enum _PCI_DEVICE_TYPES
116 {
123 
124 //
125 // Device Extension Logic States
126 //
127 typedef enum _PCI_STATE
128 {
136 } PCI_STATE;
137 
138 //
139 // IRP Dispatch Logic Style
140 //
142 {
148 
149 //
150 // PCI Hack Entry Information
151 //
152 typedef struct _PCI_HACK_ENTRY
153 {
162 
163 //
164 // Power State Information for Device Extension
165 //
166 typedef struct _PCI_POWER_STATE
167 {
179 
180 //
181 // Internal PCI Lock Structure
182 //
183 typedef struct _PCI_LOCK
184 {
187 } PCI_LOCK, *PPCI_LOCK;
188 
189 //
190 // Device Extension for a Bus FDO
191 //
192 typedef struct _PCI_FDO_EXTENSION
193 {
223  struct
224  {
233 
235 {
239 
241 {
242  struct
243  {
245  } type0;
246  struct
247  {
256  } type1;
257  struct
258  {
259  UCHAR Spare[4];
260  } type2;
262 
263 typedef struct _PCI_PDO_EXTENSION
264 {
270 
321 
322 //
323 // IRP Dispatch Function Type
324 //
326  IN PIRP Irp,
327  IN PIO_STACK_LOCATION IoStackLocation,
328  IN PVOID DeviceExtension
329 );
330 
331 //
332 // IRP Dispatch Minor Table
333 //
335 {
339 
340 //
341 // IRP Dispatch Major Table
342 //
344 {
354 
355 //
356 // Generic PCI Interface Constructor and Initializer
357 //
358 struct _PCI_INTERFACE;
359 typedef NTSTATUS (NTAPI *PCI_INTERFACE_CONSTRUCTOR)(
360  IN PVOID DeviceExtension,
363  IN USHORT Version,
364  IN USHORT Size,
366 );
367 
370 );
371 
372 //
373 // Generic PCI Interface (Interface, Translator, Arbiter)
374 //
375 typedef struct _PCI_INTERFACE
376 {
384  PCI_INTERFACE_CONSTRUCTOR Constructor;
387 
388 //
389 // Generic Secondary Extension Instance Header (Interface, Translator, Arbiter)
390 //
392 {
397 
398 //
399 // PCI Arbiter Instance
400 //
401 typedef struct PCI_ARBITER_INSTANCE
402 {
409 
410 //
411 // PCI Verifier Data
412 //
413 typedef struct _PCI_VERIFIER_DATA
414 {
420 
421 //
422 // PCI ID Buffer Descriptor
423 //
424 typedef struct _PCI_ID_BUFFER
425 {
433 
434 //
435 // PCI Configuration Callbacks
436 //
438 
439 typedef VOID (NTAPI *PCI_CONFIGURATOR_INITIALIZE)(
441 );
442 
445 );
446 
449 );
450 
453 );
454 
458 );
459 
463  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
464 );
465 
469 );
470 
471 //
472 // PCI Configurator
473 //
474 typedef struct _PCI_CONFIGURATOR
475 {
476  PCI_CONFIGURATOR_INITIALIZE Initialize;
484 
485 //
486 // PCI Configurator Context
487 //
489 {
498 
499 //
500 // PCI IPI Function
501 //
503  IN PVOID Reserved,
505 );
506 
507 //
508 // PCI IPI Context
509 //
510 typedef struct _PCI_IPI_CONTEXT
511 {
518 
519 //
520 // PCI Legacy Device Location Cache
521 //
522 typedef struct _PCI_LEGACY_DEVICE
523 {
536 
537 //
538 // IRP Dispatch Routines
539 //
540 
542 
543 NTSTATUS
544 NTAPI
547  IN PIRP Irp
548 );
549 
550 NTSTATUS
551 NTAPI
553  IN PIRP Irp,
554  IN PIO_STACK_LOCATION IoStackLocation,
555  IN PPCI_FDO_EXTENSION DeviceExtension
556 );
557 
558 NTSTATUS
559 NTAPI
561  IN PPCI_FDO_EXTENSION DeviceExtension,
562  IN PIRP Irp
563 );
564 
565 NTSTATUS
566 NTAPI
568  IN PPCI_FDO_EXTENSION DeviceExtension,
569  IN PIRP Irp
570 );
571 
572 NTSTATUS
573 NTAPI
575  IN PIRP Irp,
576  IN PIO_STACK_LOCATION IoStackLocation,
577  IN PPCI_FDO_EXTENSION DeviceExtension
578 );
579 
580 //
581 // Power Routines
582 //
583 NTSTATUS
584 NTAPI
586  IN PIRP Irp,
587  IN PIO_STACK_LOCATION IoStackLocation,
588  IN PPCI_FDO_EXTENSION DeviceExtension
589 );
590 
591 NTSTATUS
592 NTAPI
594  IN PIRP Irp,
595  IN PIO_STACK_LOCATION IoStackLocation,
596  IN PPCI_FDO_EXTENSION DeviceExtension
597 );
598 
599 NTSTATUS
600 NTAPI
602  IN PIRP Irp,
603  IN PIO_STACK_LOCATION IoStackLocation,
604  IN PPCI_FDO_EXTENSION DeviceExtension
605 );
606 
607 NTSTATUS
608 NTAPI
610  IN PPCI_PDO_EXTENSION DeviceExtension,
611  IN DEVICE_POWER_STATE DeviceState,
612  IN BOOLEAN IrpSet
613 );
614 
615 //
616 // Bus FDO Routines
617 //
618 
619 DRIVER_ADD_DEVICE PciAddDevice;
620 
621 NTSTATUS
622 NTAPI
626 );
627 
628 NTSTATUS
629 NTAPI
631  IN PIRP Irp,
632  IN PIO_STACK_LOCATION IoStackLocation,
633  IN PPCI_FDO_EXTENSION DeviceExtension
634 );
635 
636 NTSTATUS
637 NTAPI
639  IN PIRP Irp,
640  IN PIO_STACK_LOCATION IoStackLocation,
641  IN PPCI_FDO_EXTENSION DeviceExtension
642 );
643 
644 NTSTATUS
645 NTAPI
647  IN PIRP Irp,
648  IN PIO_STACK_LOCATION IoStackLocation,
649  IN PPCI_FDO_EXTENSION DeviceExtension
650 );
651 
652 NTSTATUS
653 NTAPI
655  IN PIRP Irp,
656  IN PIO_STACK_LOCATION IoStackLocation,
657  IN PPCI_FDO_EXTENSION DeviceExtension
658 );
659 
660 NTSTATUS
661 NTAPI
663  IN PIRP Irp,
664  IN PIO_STACK_LOCATION IoStackLocation,
665  IN PPCI_FDO_EXTENSION DeviceExtension
666 );
667 
668 NTSTATUS
669 NTAPI
671  IN PIRP Irp,
672  IN PIO_STACK_LOCATION IoStackLocation,
673  IN PPCI_FDO_EXTENSION DeviceExtension
674 );
675 
676 NTSTATUS
677 NTAPI
679  IN PIRP Irp,
680  IN PIO_STACK_LOCATION IoStackLocation,
681  IN PPCI_FDO_EXTENSION DeviceExtension
682 );
683 
684 NTSTATUS
685 NTAPI
687  IN PIRP Irp,
688  IN PIO_STACK_LOCATION IoStackLocation,
689  IN PPCI_FDO_EXTENSION DeviceExtension
690 );
691 
692 NTSTATUS
693 NTAPI
695  IN PIRP Irp,
696  IN PIO_STACK_LOCATION IoStackLocation,
697  IN PPCI_FDO_EXTENSION DeviceExtension
698 );
699 
700 NTSTATUS
701 NTAPI
703  IN PIRP Irp,
704  IN PIO_STACK_LOCATION IoStackLocation,
705  IN PPCI_FDO_EXTENSION DeviceExtension
706 );
707 
708 NTSTATUS
709 NTAPI
711  IN PIRP Irp,
712  IN PIO_STACK_LOCATION IoStackLocation,
713  IN PPCI_FDO_EXTENSION DeviceExtension
714 );
715 
716 NTSTATUS
717 NTAPI
719  IN PIRP Irp,
720  IN PIO_STACK_LOCATION IoStackLocation,
721  IN PPCI_FDO_EXTENSION DeviceExtension
722 );
723 
724 NTSTATUS
725 NTAPI
727  IN PIRP Irp,
728  IN PIO_STACK_LOCATION IoStackLocation,
729  IN PPCI_FDO_EXTENSION DeviceExtension
730 );
731 
732 //
733 // Device PDO Routines
734 //
735 NTSTATUS
736 NTAPI
738  IN PPCI_FDO_EXTENSION DeviceExtension,
739  IN PCI_SLOT_NUMBER Slot,
741 );
742 
743 NTSTATUS
744 NTAPI
746  IN PIRP Irp,
747  IN PIO_STACK_LOCATION IoStackLocation,
748  IN PPCI_PDO_EXTENSION DeviceExtension
749 );
750 
751 NTSTATUS
752 NTAPI
754  IN PIRP Irp,
755  IN PIO_STACK_LOCATION IoStackLocation,
756  IN PPCI_PDO_EXTENSION DeviceExtension
757 );
758 
759 NTSTATUS
760 NTAPI
762  IN PIRP Irp,
763  IN PIO_STACK_LOCATION IoStackLocation,
764  IN PPCI_PDO_EXTENSION DeviceExtension
765 );
766 
767 NTSTATUS
768 NTAPI
770  IN PIRP Irp,
771  IN PIO_STACK_LOCATION IoStackLocation,
772  IN PPCI_PDO_EXTENSION DeviceExtension
773 );
774 
775 NTSTATUS
776 NTAPI
778  IN PIRP Irp,
779  IN PIO_STACK_LOCATION IoStackLocation,
780  IN PPCI_PDO_EXTENSION DeviceExtension
781 );
782 
783 NTSTATUS
784 NTAPI
786  IN PIRP Irp,
787  IN PIO_STACK_LOCATION IoStackLocation,
788  IN PPCI_PDO_EXTENSION DeviceExtension
789 );
790 
791 NTSTATUS
792 NTAPI
794  IN PIRP Irp,
795  IN PIO_STACK_LOCATION IoStackLocation,
796  IN PPCI_PDO_EXTENSION DeviceExtension
797 );
798 
799 NTSTATUS
800 NTAPI
802  IN PIRP Irp,
803  IN PIO_STACK_LOCATION IoStackLocation,
804  IN PPCI_PDO_EXTENSION DeviceExtension
805 );
806 
807 NTSTATUS
808 NTAPI
810  IN PIRP Irp,
811  IN PIO_STACK_LOCATION IoStackLocation,
812  IN PPCI_PDO_EXTENSION DeviceExtension
813 );
814 
815 NTSTATUS
816 NTAPI
818  IN PIRP Irp,
819  IN PIO_STACK_LOCATION IoStackLocation,
820  IN PPCI_PDO_EXTENSION DeviceExtension
821 );
822 
823 NTSTATUS
824 NTAPI
826  IN PIRP Irp,
827  IN PIO_STACK_LOCATION IoStackLocation,
828  IN PPCI_PDO_EXTENSION DeviceExtension
829 );
830 
831 NTSTATUS
832 NTAPI
834  IN PIRP Irp,
835  IN PIO_STACK_LOCATION IoStackLocation,
836  IN PPCI_PDO_EXTENSION DeviceExtension
837 );
838 
839 NTSTATUS
840 NTAPI
842  IN PIRP Irp,
843  IN PIO_STACK_LOCATION IoStackLocation,
844  IN PPCI_PDO_EXTENSION DeviceExtension
845 );
846 
847 NTSTATUS
848 NTAPI
850  IN PIRP Irp,
851  IN PIO_STACK_LOCATION IoStackLocation,
852  IN PPCI_PDO_EXTENSION DeviceExtension
853 );
854 
855 NTSTATUS
856 NTAPI
858  IN PIRP Irp,
859  IN PIO_STACK_LOCATION IoStackLocation,
860  IN PPCI_PDO_EXTENSION DeviceExtension
861 );
862 
863 NTSTATUS
864 NTAPI
866  IN PIRP Irp,
867  IN PIO_STACK_LOCATION IoStackLocation,
868  IN PPCI_PDO_EXTENSION DeviceExtension
869 );
870 
871 NTSTATUS
872 NTAPI
874  IN PIRP Irp,
875  IN PIO_STACK_LOCATION IoStackLocation,
876  IN PPCI_PDO_EXTENSION DeviceExtension
877 );
878 
879 NTSTATUS
880 NTAPI
882  IN PIRP Irp,
883  IN PIO_STACK_LOCATION IoStackLocation,
884  IN PPCI_PDO_EXTENSION DeviceExtension
885 );
886 
887 NTSTATUS
888 NTAPI
890  IN PIRP Irp,
891  IN PIO_STACK_LOCATION IoStackLocation,
892  IN PPCI_PDO_EXTENSION DeviceExtension
893 );
894 
895 NTSTATUS
896 NTAPI
898  IN PIRP Irp,
899  IN PIO_STACK_LOCATION IoStackLocation,
900  IN PPCI_PDO_EXTENSION DeviceExtension
901 );
902 
903 NTSTATUS
904 NTAPI
906  IN PIRP Irp,
907  IN PIO_STACK_LOCATION IoStackLocation,
908  IN PPCI_PDO_EXTENSION DeviceExtension
909 );
910 
911 NTSTATUS
912 NTAPI
914  IN PIRP Irp,
915  IN PIO_STACK_LOCATION IoStackLocation,
916  IN PPCI_PDO_EXTENSION DeviceExtension
917 );
918 
919 NTSTATUS
920 NTAPI
922  IN PIRP Irp,
923  IN PIO_STACK_LOCATION IoStackLocation,
924  IN PPCI_PDO_EXTENSION DeviceExtension
925 );
926 
927 NTSTATUS
928 NTAPI
930  IN PIRP Irp,
931  IN PIO_STACK_LOCATION IoStackLocation,
932  IN PPCI_PDO_EXTENSION DeviceExtension
933 );
934 
935 
936 //
937 // HAL Callback/Hook Routines
938 //
939 VOID
940 NTAPI
941 PciHookHal(
942  VOID
943 );
944 
945 //
946 // PCI Verifier Routines
947 //
948 VOID
949 NTAPI
952 );
953 
955 NTAPI
957  IN ULONG FailureCode
958 );
959 
960 //
961 // Utility Routines
962 //
963 BOOLEAN
964 NTAPI
966  IN PWCHAR String,
968 );
969 
970 BOOLEAN
971 NTAPI
973  VOID
974 );
975 
976 NTSTATUS
977 NTAPI
979  VOID
980 );
981 
982 BOOLEAN
983 NTAPI
985  IN PUNICODE_STRING InputString,
986  IN PCUNICODE_STRING EqualString,
988 );
989 
990 BOOLEAN
991 NTAPI
992 PciOpenKey(
993  IN PWCHAR KeyName,
994  IN HANDLE RootKey,
997  OUT PNTSTATUS KeyStatus
998 );
999 
1000 NTSTATUS
1001 NTAPI
1004  IN PWCHAR KeyName,
1005  IN HANDLE RootHandle,
1006  IN ULONG Type,
1008  OUT PULONG OutputLength
1009 );
1010 
1012 NTAPI
1015  IN PKEVENT Lock
1016 );
1017 
1018 VOID
1019 NTAPI
1021  IN PSINGLE_LIST_ENTRY ListHead,
1022  IN PPCI_FDO_EXTENSION DeviceExtension,
1023  IN PKEVENT Lock
1024 );
1025 
1026 NTSTATUS
1027 NTAPI
1032 );
1033 
1034 NTSTATUS
1035 NTAPI
1036 PciSendIoctl(
1043 );
1044 
1045 VOID
1046 NTAPI
1049  IN PVOID Lock,
1050  IN PPCI_SECONDARY_EXTENSION SecondaryExtension,
1051  IN PCI_SIGNATURE ExtensionType,
1052  IN PVOID Destructor
1053 );
1054 
1056 NTAPI
1058  IN PSINGLE_LIST_ENTRY ListHead,
1059  IN PCI_SIGNATURE ExtensionType
1060 );
1061 
1062 ULONGLONG
1063 NTAPI
1065  IN USHORT VendorId,
1066  IN USHORT DeviceId,
1067  IN USHORT SubVendorId,
1068  IN USHORT SubSystemId,
1069  IN UCHAR RevisionId
1070 );
1071 
1073 NTAPI
1075  IN PPCI_FDO_EXTENSION DeviceExtension,
1076  IN ULONG FunctionNumber,
1077  IN PPCI_COMMON_HEADER PciData
1078 );
1079 
1080 BOOLEAN
1081 NTAPI
1083  IN UCHAR BaseClass,
1084  IN UCHAR SubClass
1085 );
1086 
1087 BOOLEAN
1088 NTAPI
1090  IN PPCI_PDO_EXTENSION DeviceExtension
1091 );
1092 
1093 NTSTATUS
1094 NTAPI
1096  IN PPCI_PDO_EXTENSION DeviceExtension,
1097  OUT PPCI_COMMON_HEADER PciData
1098 );
1099 
1100 NTSTATUS
1101 NTAPI
1103  IN PPCI_PDO_EXTENSION DeviceExtension,
1104  OUT PPCI_COMMON_HEADER PciData
1105 );
1106 
1107 UCHAR
1108 NTAPI
1110  IN PPCI_PDO_EXTENSION DeviceExtension,
1111  IN UCHAR Offset,
1112  IN ULONG CapabilityId,
1114  IN ULONG Length
1115 );
1116 
1117 BOOLEAN
1118 NTAPI
1120  IN PPCI_PDO_EXTENSION DeviceExtension,
1122  IN ULONGLONG HackFlags,
1123  IN BOOLEAN ForPowerDown
1124 );
1125 
1127 NTAPI
1130 );
1131 
1132 KIPI_BROADCAST_WORKER PciExecuteCriticalSystemRoutine;
1133 
1134 ULONG_PTR
1135 NTAPI
1137  IN ULONG_PTR IpiContext
1138 );
1139 
1140 BOOLEAN
1141 NTAPI
1143  PIO_RESOURCE_DESCRIPTOR ResourceDescriptor,
1144  IN PULONG BarArray,
1145  IN BOOLEAN Rom
1146 );
1147 
1148 BOOLEAN
1149 NTAPI
1152  IN ULONG Method
1153 );
1154 
1155 VOID
1156 NTAPI
1159  IN BOOLEAN Enable,
1161 );
1162 
1163 NTSTATUS
1164 NTAPI
1168 );
1169 
1170 NTSTATUS
1171 NTAPI
1174  IN OUT PDEVICE_CAPABILITIES DeviceCapability
1175 );
1176 
1177 //
1178 // Configuration Routines
1179 //
1180 NTSTATUS
1181 NTAPI
1184 );
1185 
1186 VOID
1187 NTAPI
1189  IN PPCI_FDO_EXTENSION DeviceExtension,
1190  IN PCI_SLOT_NUMBER Slot,
1191  IN PVOID Buffer,
1192  IN ULONG Offset,
1193  IN ULONG Length
1194 );
1195 
1196 VOID
1197 NTAPI
1199  IN PPCI_PDO_EXTENSION DeviceExtension,
1200  IN PVOID Buffer,
1201  IN ULONG Offset,
1202  IN ULONG Length
1203 );
1204 
1205 VOID
1206 NTAPI
1208  IN PPCI_PDO_EXTENSION DeviceExtension,
1209  IN PVOID Buffer,
1210  IN ULONG Offset,
1211  IN ULONG Length
1212 );
1213 
1214 UCHAR
1215 NTAPI
1218 );
1219 
1220 //
1221 // State Machine Logic Transition Routines
1222 //
1223 VOID
1224 NTAPI
1226  IN PPCI_FDO_EXTENSION DeviceExtension
1227 );
1228 
1229 NTSTATUS
1230 NTAPI
1232  IN PPCI_FDO_EXTENSION DeviceExtension,
1233  IN PCI_STATE NewState
1234 );
1235 
1236 NTSTATUS
1237 NTAPI
1239  IN PPCI_FDO_EXTENSION DeviceExtension,
1240  IN PCI_STATE NewState
1241 );
1242 
1243 VOID
1244 NTAPI
1246  IN PPCI_FDO_EXTENSION DeviceExtension,
1247  IN PCI_STATE NewState
1248 );
1249 
1250 //
1251 // Arbiter Support
1252 //
1253 NTSTATUS
1254 NTAPI
1257 );
1258 
1259 NTSTATUS
1260 NTAPI
1262  IN PPCI_FDO_EXTENSION DeviceExtension,
1264 );
1265 
1266 //
1267 // Debug Helpers
1268 //
1269 BOOLEAN
1270 NTAPI
1272  IN PIO_STACK_LOCATION IoStackLocation,
1273  IN PPCI_FDO_EXTENSION DeviceExtension,
1274  IN USHORT MaxMinor
1275 );
1276 
1277 VOID
1278 NTAPI
1280  IN PPCI_COMMON_HEADER PciData
1281 );
1282 
1283 VOID
1284 NTAPI
1286  IN PDEVICE_CAPABILITIES DeviceCaps
1287 );
1288 
1289 VOID
1290 NTAPI
1292  IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements
1293 );
1294 
1295 VOID
1296 NTAPI
1299 );
1300 
1301 VOID
1302 NTAPI
1304  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource
1305 );
1306 
1307 //
1308 // Interface Support
1309 //
1310 NTSTATUS
1311 NTAPI
1313  IN PPCI_FDO_EXTENSION DeviceExtension,
1314  IN CONST GUID* InterfaceType,
1315  IN ULONG Size,
1316  IN ULONG Version,
1319  IN BOOLEAN LastChance
1320 );
1321 
1322 NTSTATUS
1323 NTAPI
1325  IN PVOID Instance
1326 );
1327 
1328 NTSTATUS
1329 NTAPI
1331  IN PVOID Instance
1332 );
1333 
1334 NTSTATUS
1335 NTAPI
1337  IN PVOID Instance
1338 );
1339 
1340 NTSTATUS
1341 NTAPI
1343  IN PVOID Instance
1344 );
1345 
1346 NTSTATUS
1347 NTAPI
1349  IN PVOID Instance
1350 );
1351 
1352 NTSTATUS
1353 NTAPI
1355  IN PVOID Instance
1356 );
1357 
1358 NTSTATUS
1359 NTAPI
1361  IN PVOID Instance
1362 );
1363 
1364 NTSTATUS
1365 NTAPI
1367  IN PVOID Instance
1368 );
1369 
1370 NTSTATUS
1371 NTAPI
1373  IN PVOID Instance
1374 );
1375 
1376 NTSTATUS
1377 NTAPI
1379  IN PVOID Instance
1380 );
1381 
1382 NTSTATUS
1383 NTAPI
1385  IN PVOID Instance
1386 );
1387 
1388 NTSTATUS
1389 NTAPI
1391  IN PVOID Instance
1392 );
1393 
1394 NTSTATUS
1395 NTAPI
1397  IN PVOID DeviceExtension,
1398  IN PVOID Instance,
1400  IN USHORT Version,
1401  IN USHORT Size,
1403 );
1404 
1405 NTSTATUS
1406 NTAPI
1408  IN PVOID DeviceExtension,
1409  IN PVOID Instance,
1411  IN USHORT Version,
1412  IN USHORT Size,
1414 );
1415 
1416 NTSTATUS
1417 NTAPI
1419  IN PVOID DeviceExtension,
1420  IN PVOID Instance,
1422  IN USHORT Version,
1423  IN USHORT Size,
1425 );
1426 
1427 NTSTATUS
1428 NTAPI
1430  IN PVOID DeviceExtension,
1431  IN PVOID Instance,
1433  IN USHORT Version,
1434  IN USHORT Size,
1436 );
1437 
1438 NTSTATUS
1439 NTAPI
1441  IN PVOID DeviceExtension,
1442  IN PVOID Instance,
1444  IN USHORT Version,
1445  IN USHORT Size,
1447 );
1448 
1449 NTSTATUS
1450 NTAPI
1452  IN PVOID DeviceExtension,
1453  IN PVOID Instance,
1455  IN USHORT Version,
1456  IN USHORT Size,
1458 );
1459 
1460 VOID
1461 NTAPI
1464 );
1465 
1466 NTSTATUS
1467 NTAPI
1469  IN PVOID DeviceExtension,
1470  IN PVOID Instance,
1472  IN USHORT Version,
1473  IN USHORT Size,
1475 );
1476 
1477 NTSTATUS
1478 NTAPI
1480  IN PVOID DeviceExtension,
1481  IN PVOID Instance,
1483  IN USHORT Version,
1484  IN USHORT Size,
1486 );
1487 
1488 NTSTATUS
1489 NTAPI
1491  IN PVOID DeviceExtension,
1492  IN PVOID Instance,
1494  IN USHORT Version,
1495  IN USHORT Size,
1497 );
1498 
1499 NTSTATUS
1500 NTAPI
1502  IN PVOID DeviceExtension,
1503  IN PVOID Instance,
1505  IN USHORT Version,
1506  IN USHORT Size,
1508 );
1509 
1510 NTSTATUS
1511 NTAPI
1513  IN PVOID DeviceExtension,
1514  IN PVOID Instance,
1516  IN USHORT Version,
1517  IN USHORT Size,
1519 );
1520 
1521 NTSTATUS
1522 NTAPI
1524  IN PVOID DeviceExtension,
1525  IN PVOID Instance,
1527  IN USHORT Version,
1528  IN USHORT Size,
1530 );
1531 
1532 //
1533 // PCI Enumeration and Resources
1534 //
1535 NTSTATUS
1536 NTAPI
1538  IN PPCI_FDO_EXTENSION DeviceExtension,
1539  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1540 );
1541 
1542 NTSTATUS
1543 NTAPI
1547 );
1548 
1549 NTSTATUS
1550 NTAPI
1553  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1554 );
1555 
1556 NTSTATUS
1557 NTAPI
1560  IN OUT PDEVICE_RELATIONS *pDeviceRelations
1561 );
1562 
1563 NTSTATUS
1564 NTAPI
1567  IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *RequirementsList
1568 );
1569 
1570 BOOLEAN
1571 NTAPI
1575 );
1576 
1577 NTSTATUS
1578 NTAPI
1581  IN BOOLEAN DoReset,
1582  IN BOOLEAN SomethingSomethingDarkSide
1583 );
1584 
1585 NTSTATUS
1586 NTAPI
1589  IN PPCI_COMMON_HEADER PciData,
1591 );
1592 
1593 //
1594 // Identification Functions
1595 //
1596 PWCHAR
1597 NTAPI
1599  IN UCHAR BaseClass,
1600  IN UCHAR SubClass
1601 );
1602 
1603 NTSTATUS
1604 NTAPI
1608  IN ULONG Locale,
1609  OUT PWCHAR *Buffer
1610 );
1611 
1612 NTSTATUS
1613 NTAPI
1614 PciQueryId(
1615  IN PPCI_PDO_EXTENSION DeviceExtension,
1617  OUT PWCHAR *Buffer
1618 );
1619 
1620 //
1621 // CardBUS Support
1622 //
1623 VOID
1624 NTAPI
1627 );
1628 
1629 VOID
1630 NTAPI
1633 );
1634 
1635 VOID
1636 NTAPI
1639 );
1640 
1641 VOID
1642 NTAPI
1645 );
1646 
1647 VOID
1648 NTAPI
1651  IN PPCI_COMMON_HEADER PciData,
1652  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1653 );
1654 
1655 VOID
1656 NTAPI
1659  IN PPCI_COMMON_HEADER PciData
1660 );
1661 
1662 VOID
1663 NTAPI
1666  IN PPCI_COMMON_HEADER PciData
1667 );
1668 
1669 //
1670 // PCI Device Support
1671 //
1672 VOID
1673 NTAPI
1676 );
1677 
1678 VOID
1679 NTAPI
1682 );
1683 
1684 VOID
1685 NTAPI
1688 );
1689 
1690 VOID
1691 NTAPI
1694 );
1695 
1696 VOID
1697 NTAPI
1700  IN PPCI_COMMON_HEADER PciData,
1701  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1702 );
1703 
1704 VOID
1705 NTAPI
1708  IN PPCI_COMMON_HEADER PciData
1709 );
1710 
1711 VOID
1712 NTAPI
1715  IN PPCI_COMMON_HEADER PciData
1716 );
1717 
1718 //
1719 // PCI-to-PCI Bridge Device Support
1720 //
1721 VOID
1722 NTAPI
1725 );
1726 
1727 VOID
1728 NTAPI
1731 );
1732 
1733 VOID
1734 NTAPI
1737 );
1738 
1739 VOID
1740 NTAPI
1743 );
1744 
1745 VOID
1746 NTAPI
1749  IN PPCI_COMMON_HEADER PciData,
1750  IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1751 );
1752 
1753 VOID
1754 NTAPI
1757  IN PPCI_COMMON_HEADER PciData
1758 );
1759 
1760 VOID
1761 NTAPI
1764  IN PPCI_COMMON_HEADER PciData
1765 );
1766 
1767 //
1768 // Bus Number Routines
1769 //
1770 BOOLEAN
1771 NTAPI
1774 );
1775 
1776 //
1777 // Routine Interface
1778 //
1779 NTSTATUS
1780 NTAPI
1783  IN ULONG BusNumber,
1787  IN UCHAR BaseClass,
1788  IN UCHAR SubClass,
1791  OUT PDEVICE_OBJECT *pFoundDeviceObject
1792 );
1793 
1794 //
1795 // External Resources
1796 //
1798 extern KEVENT PciGlobalLock;
1799 extern PPCI_INTERFACE PciInterfaces[];
1809 //extern PCI_INTERFACE PciNativeIdeInterface;
1814 extern PWATCHDOG_TABLE WdTable;
1820 
1821 /* Exported by NTOS, should this go in the NDK? */
1823 
1824 #endif /* _PCIX_PCH_ */
PCI_INTERFACE AgpTargetInterface
Definition: agpintrf.c:20
NTSTATUS(NTAPI * PCI_INTERFACE_INITIALIZER)(IN PVOID Instance)
Definition: pci.h:368
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:2373
VOID NTAPI ario_ApplyBrokenVideoHack(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: ar_memio.c:104
PVOID Context
Definition: pci.h:516
signed char * PCHAR
Definition: retypes.h:7
Definition: pci.h:152
SINGLE_LIST_ENTRY List
Definition: pci.h:393
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:513
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:300
#define IN
Definition: typedefs.h:39
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:479
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:361
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
USHORT SecondaryStatus
Definition: pci.h:494
BOOLEAN NTAPI PciComputeNewCurrentSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PCM_RESOURCE_LIST ResourceList)
Definition: enum.c:55
BOOLEAN DisablePowerDown
Definition: pci.h:301
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:345
_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:428
DEVICE_POWER_STATE DeviceWakeLevel
Definition: pci.h:171
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:451
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:278
struct PCI_SECONDARY_EXTENSION * PPCI_SECONDARY_EXTENSION
USHORT VendorID
Definition: pci.h:154
struct _PCI_PDO_EXTENSION * NextBridge
Definition: pci.h:313
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:226
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:307
PCI_PMC PowerCapabilities
Definition: pci.h:316
UCHAR SubClass
Definition: pci.h:531
LONG BusInterfaceReferenceCount
Definition: pci.h:276
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:289
_In_ PIRP Irp
Definition: csq.h:116
BOOLEAN RevisionId
Definition: pci.h:282
struct _PCI_ID_BUFFER * PPCI_ID_BUFFER
DRIVER_ADD_DEVICE PciAddDevice
Definition: pci.h:619
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:169
PCI_DISPATCH_FUNCTION SystemControlIrpDispatchFunction
Definition: pci.h:350
ULONG ExtensionType
Definition: pci.h:266
IO_RESOURCE_DESCRIPTOR Limit[7]
Definition: pci.h:236
PCI_INTERFACE PciLegacyDeviceDetectionInterface
Definition: lddintrf.c:18
BOOLEAN Hibernated
Definition: pci.h:217
struct _PCI_INTERFACE * PPCI_INTERFACE
BOOLEAN BrokenVideoHackApplied
Definition: pci.h:216
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:196
PCI_FDO_EXTENSION * BridgeFdoExtension
Definition: pci.h:312
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:493
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
struct _PCI_HEADER_TYPE_DEPENDENT::@614 type1
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
LONG AgpInterfaceReferenceCount
Definition: pci.h:277
PCI_LOCK Lock
Definition: pci.h:315
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:73
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:186
CONST GUID * InterfaceType
Definition: pci.h:377
BOOLEAN NotPresent
Definition: pci.h:294
UCHAR InterruptPin
Definition: pci.h:529
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:173
_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:115
BOOLEAN EnablePERR
Definition: pci.h:228
enum _PCI_SIGNATURE PCI_SIGNATURE
USHORT Flags
Definition: pci.h:381
USHORT DeviceID
Definition: pci.h:155
BOOLEAN ExpectedWritebackFailure
Definition: pci.h:296
USHORT CommandEnables
Definition: pci.h:318
BOOLEAN NTAPI PciIsCriticalDeviceClass(IN UCHAR BaseClass, IN UCHAR SubClass)
Definition: utils.c:672
LONG Atom
Definition: pci.h:185
PCI_HEADER_TYPE_DEPENDENT Dependent
Definition: pci.h:309
static WCHAR String[]
Definition: stringtable.c:55
BOOLEAN DeviceState
Definition: pci.h:268
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:55
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:1155
BUS_HANDLER * BusHandler
Definition: pci.h:210
ULONG PowerIrpMaximumMinorFunction
Definition: pci.h:347
BOOLEAN ReportedMissing
Definition: pci.h:295
PCI_INTERFACE PciCardbusPrivateInterface
Definition: cardbus.c:18
NTSTATUS NTAPI PciPmeInterfaceInitializer(IN PVOID Instance)
Definition: pmeintf.c:35
BOOLEAN InterruptPin
Definition: pci.h:288
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
struct _PCI_HEADER_TYPE_DEPENDENT::@613 type0
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
BOOLEAN MaxSubordinateBus
Definition: pci.h:209
struct _PCI_POWER_STATE PCI_POWER_STATE
UCHAR Flags
Definition: pci.h:160
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:443
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:281
BOOLEAN DeviceState
Definition: pci.h:197
struct _PCI_FDO_EXTENSION::@612 HotPlugParameters
VOID NTAPI PciDebugPrintIoResReqList(IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements)
Definition: debug.c:302
LONG ReferenceCount
Definition: pci.h:382
VOID NTAPI PPBridge_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:582
ULONG Count
Definition: pci.h:426
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:206
NTSTATUS NTAPI PciInitializeArbiterRanges(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCM_RESOURCE_LIST Resources)
Definition: arb_comn.c:128
BOOLEAN TargetAgpCapabilityId
Definition: pci.h:317
uint32_t ULONG_PTR
Definition: typedefs.h:64
struct _PCI_HEADER_TYPE_DEPENDENT::@615 type2
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:92
UCHAR NTAPI PciGetAdjustedInterruptLine(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: config.c:24
ULONG FailureCode
Definition: pci.h:415
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:352
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:176
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:525
USHORT InitialCommand
Definition: pci.h:319
PPCI_MN_DISPATCH_TABLE PowerIrpDispatchTable
Definition: pci.h:348
BOOLEAN SubClass
Definition: pci.h:284
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:534
_In_ const STRING _In_ BOOLEAN CaseInSensitive
Definition: rtlfuncs.h:2322
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:460
PCI_POWER_STATE PowerState
Definition: pci.h:308
USHORT SubSystemID
Definition: pci.h:157
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
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:275
VOID NTAPI Cardbus_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:43
KEVENT ChildListLock
Definition: pci.h:203
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:533
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:219
USHORT SubVendorID
Definition: pci.h:156
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:476
PCI_INTERFACE_INITIALIZER Initializer
Definition: pci.h:385
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:1132
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:159
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:127
BOOLEAN BaseBus
Definition: pci.h:211
_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:311
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:481
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:349
struct _PCI_PDO_EXTENSION * NextHashEntry
Definition: pci.h:314
_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:526
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:478
enum _PCI_DEVICE_TYPES PCI_DEVICE_TYPES
PPCI_PDO_EXTENSION PdoExtension
Definition: pci.h:490
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:265
NTSTATUS NTAPI PciGetConfigHandlers(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: config.c:224
BOOLEAN SavedLatencyTimer
Definition: pci.h:291
PPCI_FDO_EXTENSION BusFdoExtension
Definition: pci.h:405
struct _PCI_IPI_CONTEXT * PPCI_IPI_CONTEXT
PCI_DISPATCH_STYLE OtherIrpDispatchStyle
Definition: pci.h:351
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:304
PDEVICE_OBJECT FunctionalDeviceObject
Definition: pci.h:201
PCI_CONFIGURATOR_RESTORE_CURRENT RestoreCurrent
Definition: pci.h:477
LONG ChildWaitWakeCount
Definition: pci.h:220
struct _PCI_CONFIGURATOR_CONTEXT PCI_CONFIGURATOR_CONTEXT
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:361
WCHAR InstanceName[24]
Definition: pci.h:406
USHORT MaxVersion
Definition: pci.h:380
PPCI_FDO_EXTENSION NTAPI PciFindParentPciFdoExtension(IN PDEVICE_OBJECT DeviceObject, IN PKEVENT Lock)
Definition: utils.c:340
PPCI_COMMON_HEADER PciData
Definition: pci.h:492
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:274
DEVICE_POWER_STATE SystemStateMapping[7]
Definition: pci.h:172
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:212
BOOLEAN NoTouchPmeEnable
Definition: pci.h:297
BOOLEAN PciEnableNativeModeATA
Definition: init.c:24
UCHAR InterruptLine
Definition: pci.h:528
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:66
NTSTATUS NTAPI PciFdoIrpRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:138
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:403
ULONGLONG HackFlags
Definition: pci.h:158
UCHAR BaseClass
Definition: pci.h:530
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:524
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:231
DRIVER_DISPATCH PciDispatchIrp
Definition: pci.h:541
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:225
PCI_CONFIGURATOR_RESET_DEVICE ResetDevice
Definition: pci.h:482
PPCI_COMMON_HEADER Current
Definition: pci.h:491
_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:416
unsigned char UCHAR
Definition: xmlstorage.h:181
PCI_INTERFACE PciDevicePresentInterface
Definition: devhere.c:18
struct _PCI_LOCK * PPCI_LOCK
USHORT MinVersion
Definition: pci.h:379
struct _PCI_VERIFIER_DATA PCI_VERIFIER_DATA
PCHAR DebuggerMessageText
Definition: pci.h:418
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:512
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
ULONG ExtensionType
Definition: pci.h:195
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:455
PPCI_COMMON_CONFIG PreservedConfig
Definition: pci.h:221
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:87
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:361
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:310
PPCI_MN_DISPATCH_TABLE PnpIrpDispatchTable
Definition: pci.h:346
struct _PCI_HACK_ENTRY PCI_HACK_ENTRY
struct _PCI_MJ_DISPATCH_TABLE * IrpDispatchTable
Definition: pci.h:267
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
struct _PCI_LEGACY_DEVICE PCI_LEGACY_DEVICE
* 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:514
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
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:430
NTSTATUS NTAPI ario_Initializer(IN PVOID Instance)
Definition: ar_memio.c:48
BOOLEAN SavedCacheLineSize
Definition: pci.h:292
BOOLEAN ArbitersInitialized
Definition: pci.h:215
SINGLE_LIST_ENTRY List
Definition: pci.h:194
BOOLEAN Scanned
Definition: pci.h:214
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:199
PVOID SavedCancelRoutine
Definition: pci.h:174
ULONG SlotNumber
Definition: pci.h:527
PCI_INTERFACE_CONSTRUCTOR Constructor
Definition: pci.h:384
NTSTATUS NTAPI busintrf_Initializer(IN PVOID Instance)
Definition: busintrf.c:35
ARBITER_INSTANCE CommonInstance
Definition: pci.h:407
struct _PCI_FDO_EXTENSION * BusRootFdoExtension
Definition: pci.h:205
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:305
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:299
BOOLEAN LegacyDriver
Definition: pci.h:298
BOOLEAN CapabilitiesPtr
Definition: pci.h:290
struct PCI_ARBITER_INSTANCE * PPCI_ARBITER_INSTANCE
LONG CrashDump
Definition: pci.h:177
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:394
_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:4137
BOOLEAN HeaderType
Definition: pci.h:293
SYSTEM_POWER_STATE CurrentSystemState
Definition: pci.h:168
BOOLEAN EnableSERR
Definition: pci.h:229
struct _PCI_HACK_ENTRY * PPCI_HACK_ENTRY
PCI_SLOT_NUMBER Slot
Definition: pci.h:272
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:207
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:361
struct _PCI_PDO_EXTENSION * ChildPdoList
Definition: pci.h:204
PPCI_INTERFACE Interface
Definition: pci.h:404
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:202
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:466
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:227
BOOLEAN IDEInNativeMode
Definition: pci.h:303
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:200
PCI_SIGNATURE Signature
Definition: pci.h:383
BOOLEAN OnDebugPath
Definition: pci.h:306
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:170
PPCI_INTERFACE PciInterfaces[]
Definition: intrface.c:18
ULONG TotalLength
Definition: pci.h:429
VOID NTAPI PciCommitStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:181
#define OUT
Definition: typedefs.h:40
KEVENT SecondaryExtLock
Definition: pci.h:271
PPCI_HACK_ENTRY PciHackTable
Definition: init.c:28
USHORT SubsystemVendorId
Definition: pci.h:280
NTSYSAPI BOOLEAN InitSafeBootMode
Definition: init.c:69
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:287
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:213
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:1034
NTSTATUS(NTAPI * PCI_DISPATCH_FUNCTION)(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PVOID DeviceExtension)
Definition: pci.h:325
unsigned int ULONG
Definition: retypes.h:1
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:361
CHAR BufferData[256]
Definition: pci.h:431
Definition: pci.h:96
ULONG AssertionControl
Definition: pci.h:417
PCI_POWER_STATE PowerState
Definition: pci.h:218
PCI_DISPATCH_FUNCTION DispatchFunction
Definition: pci.h:337
VOID(NTAPI * PCI_IPI_FUNCTION)(IN PVOID Reserved, IN PVOID Context)
Definition: pci.h:502
BOOLEAN TentativeNextState
Definition: pci.h:269
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:336
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:273
LONG Paging
Definition: pci.h:175
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:427
BOOLEAN NTAPI PciStringToUSHORT(IN PWCHAR String, OUT PUSHORT Value)
Definition: utils.c:61
BOOLEAN NeedsHotPlugConfiguration
Definition: pci.h:302
PPCI_BUS_INTERFACE_STANDARD PciBusInterface
Definition: pci.h:208
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:532
BOOLEAN ProgIf
Definition: pci.h:283
Definition: pci.h:183
USHORT DeviceId
Definition: pci.h:279
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_LIMITS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:447
PCI_LOCK Lock
Definition: pci.h:222
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:285
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:378
PCI_IPI_FUNCTION Function
Definition: pci.h:515
PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS ChangeResourceSettings
Definition: pci.h:480
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:237
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:286
BOOLEAN TentativeNextState
Definition: pci.h:198
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:141
NTSTATUS NTAPI PciBeginStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:97