ReactOS  0.4.15-dev-1399-g0db79d4
iofuncs.h
Go to the documentation of this file.
1 /******************************************************************************
2  * I/O Manager Functions *
3  ******************************************************************************/
4 
6 /*
7  * NTSTATUS
8  * IoAcquireRemoveLock(
9  * IN PIO_REMOVE_LOCK RemoveLock,
10  * IN OPTIONAL PVOID Tag)
11  */
12 #if DBG
13 #define IoAcquireRemoveLock(RemoveLock, Tag) \
14  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
15 #else
16 #define IoAcquireRemoveLock(RemoveLock, Tag) \
17  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
18 #endif
19 
20 /*
21  * VOID
22  * IoAdjustPagingPathCount(
23  * IN PLONG Count,
24  * IN BOOLEAN Increment)
25  */
26 #define IoAdjustPagingPathCount(_Count, \
27  _Increment) \
28 { \
29  if (_Increment) \
30  { \
31  InterlockedIncrement(_Count); \
32  } \
33  else \
34  { \
35  InterlockedDecrement(_Count); \
36  } \
37 }
38 
39 #if !defined(_M_AMD64)
41 VOID
42 NTAPI
44  IN PUCHAR Port,
46  IN ULONG Count);
47 
49 VOID
50 NTAPI
52  IN PULONG Port,
54  IN ULONG Count);
55 
57 VOID
58 NTAPI
60  IN PUSHORT Port,
62  IN ULONG Count);
63 
65 UCHAR
66 NTAPI
68  IN PUCHAR Port);
69 
71 ULONG
72 NTAPI
74  IN PULONG Port);
75 
77 USHORT
78 NTAPI
80  IN PUSHORT Port);
81 
83 VOID
84 NTAPI
86  IN PUCHAR Register,
88  IN ULONG Count);
89 
91 VOID
92 NTAPI
94  IN PULONG Register,
96  IN ULONG Count);
97 
99 VOID
100 NTAPI
102  IN PUSHORT Register,
103  IN PUSHORT Buffer,
104  IN ULONG Count);
105 
107 UCHAR
108 NTAPI
110  IN PUCHAR Register);
111 
113 ULONG
114 NTAPI
116  IN PULONG Register);
117 
119 USHORT
120 NTAPI
122  IN PUSHORT Register);
123 
124 NTHALAPI
125 VOID
126 NTAPI
128  IN PUCHAR Port,
129  IN PUCHAR Buffer,
130  IN ULONG Count);
131 
132 NTHALAPI
133 VOID
134 NTAPI
136  IN PULONG Port,
137  IN PULONG Buffer,
138  IN ULONG Count);
139 
140 NTHALAPI
141 VOID
142 NTAPI
144  IN PUSHORT Port,
145  IN PUSHORT Buffer,
146  IN ULONG Count);
147 
148 NTHALAPI
149 VOID
150 NTAPI
152  IN PUCHAR Port,
153  IN UCHAR Value);
154 
155 NTHALAPI
156 VOID
157 NTAPI
159  IN PULONG Port,
160  IN ULONG Value);
161 
162 NTHALAPI
163 VOID
164 NTAPI
166  IN PUSHORT Port,
167  IN USHORT Value);
168 
170 VOID
171 NTAPI
173  IN PUCHAR Register,
174  IN PUCHAR Buffer,
175  IN ULONG Count);
176 
178 VOID
179 NTAPI
181  IN PULONG Register,
182  IN PULONG Buffer,
183  IN ULONG Count);
184 
186 VOID
187 NTAPI
189  IN PUSHORT Register,
190  IN PUSHORT Buffer,
191  IN ULONG Count);
192 
194 VOID
195 NTAPI
197  IN PUCHAR Register,
198  IN UCHAR Value);
199 
201 VOID
202 NTAPI
204  IN PULONG Register,
205  IN ULONG Value);
206 
208 VOID
209 NTAPI
211  IN PUSHORT Register,
212  IN USHORT Value);
213 
214 #else
215 
217 VOID
219  IN PUCHAR Port,
220  IN PUCHAR Buffer,
221  IN ULONG Count)
222 {
224 }
225 
227 VOID
229  IN PULONG Port,
230  IN PULONG Buffer,
231  IN ULONG Count)
232 {
234 }
235 
237 VOID
239  IN PUSHORT Port,
240  IN PUSHORT Buffer,
241  IN ULONG Count)
242 {
244 }
245 
247 UCHAR
249  IN PUCHAR Port)
250 {
251  return __inbyte((USHORT)(ULONG_PTR)Port);
252 }
253 
255 ULONG
257  IN PULONG Port)
258 {
259  return __indword((USHORT)(ULONG_PTR)Port);
260 }
261 
263 USHORT
265  IN PUSHORT Port)
266 {
267  return __inword((USHORT)(ULONG_PTR)Port);
268 }
269 
271 VOID
273  IN PUCHAR Register,
274  IN PUCHAR Buffer,
275  IN ULONG Count)
276 {
277  __movsb(Register, Buffer, Count);
278 }
279 
281 VOID
283  IN PULONG Register,
284  IN PULONG Buffer,
285  IN ULONG Count)
286 {
287  __movsd(Register, Buffer, Count);
288 }
289 
291 VOID
293  IN PUSHORT Register,
294  IN PUSHORT Buffer,
295  IN ULONG Count)
296 {
297  __movsw(Register, Buffer, Count);
298 }
299 
301 UCHAR
303  IN volatile UCHAR *Register)
304 {
305  return *Register;
306 }
307 
309 ULONG
311  IN volatile ULONG *Register)
312 {
313  return *Register;
314 }
315 
317 USHORT
319  IN volatile USHORT *Register)
320 {
321  return *Register;
322 }
323 
325 VOID
327  IN PUCHAR Port,
328  IN PUCHAR Buffer,
329  IN ULONG Count)
330 {
332 }
333 
335 VOID
337  IN PULONG Port,
338  IN PULONG Buffer,
339  IN ULONG Count)
340 {
342 }
343 
345 VOID
347  IN PUSHORT Port,
348  IN PUSHORT Buffer,
349  IN ULONG Count)
350 {
352 }
353 
355 VOID
357  IN PUCHAR Port,
358  IN UCHAR Value)
359 {
361 }
362 
364 VOID
366  IN PULONG Port,
367  IN ULONG Value)
368 {
370 }
371 
373 VOID
375  IN PUSHORT Port,
376  IN USHORT Value)
377 {
379 }
380 
382 VOID
384  IN PUCHAR Register,
385  IN PUCHAR Buffer,
386  IN ULONG Count)
387 {
388  LONG Synch;
389  __movsb(Register, Buffer, Count);
390  InterlockedOr(&Synch, 1);
391 }
392 
394 VOID
396  IN PULONG Register,
397  IN PULONG Buffer,
398  IN ULONG Count)
399 {
400  LONG Synch;
401  __movsd(Register, Buffer, Count);
402  InterlockedOr(&Synch, 1);
403 }
404 
406 VOID
408  IN PUSHORT Register,
409  IN PUSHORT Buffer,
410  IN ULONG Count)
411 {
412  LONG Synch;
413  __movsw(Register, Buffer, Count);
414  InterlockedOr(&Synch, 1);
415 }
416 
418 VOID
420  IN volatile UCHAR *Register,
421  IN UCHAR Value)
422 {
423  LONG Synch;
424  *Register = Value;
425  InterlockedOr(&Synch, 1);
426 }
427 
429 VOID
431  IN volatile ULONG *Register,
432  IN ULONG Value)
433 {
434  LONG Synch;
435  *Register = Value;
436  InterlockedOr(&Synch, 1);
437 }
438 
440 VOID
442  IN volatile USHORT *Register,
443  IN USHORT Value)
444 {
445  LONG Sync;
446  *Register = Value;
447  InterlockedOr(&Sync, 1);
448 }
449 #endif
450 
451 #if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && \
452  (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
453 
454 #define DMA_MACROS_DEFINED
455 
459 NTSTATUS
461  _In_ PDMA_ADAPTER DmaAdapter,
466 {
467  PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
468  AllocateAdapterChannel =
469  *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
470  ASSERT(AllocateAdapterChannel);
471  return AllocateAdapterChannel(DmaAdapter,
472  DeviceObject,
475  Context);
476 }
477 
479 BOOLEAN
480 NTAPI
482  _In_ PDMA_ADAPTER DmaAdapter,
483  _In_ PMDL Mdl,
485  _In_ PVOID CurrentVa,
486  _In_ ULONG Length,
488 {
489  PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
490  FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
491  ASSERT(FlushAdapterBuffers);
492  return FlushAdapterBuffers(DmaAdapter,
493  Mdl,
495  CurrentVa,
496  Length,
497  WriteToDevice);
498 }
499 
501 VOID
502 NTAPI
504  _In_ PDMA_ADAPTER DmaAdapter)
505 {
506  PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
507  FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
508  ASSERT(FreeAdapterChannel);
509  FreeAdapterChannel(DmaAdapter);
510 }
511 
513 VOID
514 NTAPI
516  _In_ PDMA_ADAPTER DmaAdapter,
519 {
520  PFREE_MAP_REGISTERS FreeMapRegisters;
521  FreeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters;
522  ASSERT(FreeMapRegisters);
523  FreeMapRegisters(DmaAdapter, MapRegisterBase, NumberOfMapRegisters);
524 }
525 
528 NTAPI
530  _In_ PDMA_ADAPTER DmaAdapter,
531  _In_ PMDL Mdl,
533  _In_ PVOID CurrentVa,
536 {
537  PMAP_TRANSFER MapTransfer;
538 
539  MapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer;
540  ASSERT(MapTransfer);
541  return MapTransfer(DmaAdapter,
542  Mdl,
544  CurrentVa,
545  Length,
546  WriteToDevice);
547 }
548 #endif
549 
551 $if (_NTDDK_)
552 /*
553  * VOID IoAssignArcName(
554  * IN PUNICODE_STRING ArcName,
555  * IN PUNICODE_STRING DeviceName);
556  */
557 #define IoAssignArcName(_ArcName, _DeviceName) ( \
558  IoCreateSymbolicLink((_ArcName), (_DeviceName)))
559 
560 /*
561  * VOID
562  * IoDeassignArcName(
563  * IN PUNICODE_STRING ArcName)
564  */
565 #define IoDeassignArcName IoDeleteSymbolicLink
566 
568 VOID
569 NTAPI
570 IoInitializeDriverCreateContext(
572 {
574  DriverContext->Size = sizeof(IO_DRIVER_CREATE_CONTEXT);
575 }
576 
577 $endif (_NTDDK_)
578 $if (_NTIFS_)
579 #define IoIsFileOpenedExclusively(FileObject) ( \
580  (BOOLEAN) !( \
581  (FileObject)->SharedRead || \
582  (FileObject)->SharedWrite || \
583  (FileObject)->SharedDelete \
584  ) \
585 )
586 
587 #if (NTDDI_VERSION == NTDDI_WIN2K)
589 NTSTATUS
590 NTAPI
591 IoRegisterFsRegistrationChangeEx(
594 #endif
595 $endif (_NTIFS_)
596 #if (NTDDI_VERSION >= NTDDI_WIN2K)
597 
598 $if (_WDMDDK_)
599 _Acquires_lock_(_Global_cancel_spin_lock_)
600 _Requires_lock_not_held_(_Global_cancel_spin_lock_)
604 VOID
605 NTAPI
608 
611 NTSTATUS
612 NTAPI
614  _Inout_ PIO_REMOVE_LOCK RemoveLock,
616  _In_ PCSTR File,
617  _In_ ULONG Line,
619 
621 _Ret_range_(<=, 0)
623 NTSTATUS
624 NTAPI
628  _In_ ULONG DriverObjectExtensionSize,
629  _Post_ _At_(*DriverObjectExtension, _When_(return==0,
631  _When_(return == 0, _Outptr_result_bytebuffer_(DriverObjectExtensionSize))
632  PVOID *DriverObjectExtension);
633 
636 PVOID
637 NTAPI
641 
645 PIRP
646 NTAPI
650 
653 PMDL
654 NTAPI
661 
666 NTAPI
669 
671 _Ret_range_(<=, 0)
673 NTSTATUS
674 NTAPI
679  _Out_ PDEVICE_OBJECT *AttachedDevice);
680 
685 NTAPI
690 
695 PIRP
696 NTAPI
704 
709 PIRP
710 NTAPI
721 
724 VOID
725 NTAPI
727  _In_ PMDL SourceMdl,
730  _In_ ULONG Length);
731 
736 PIRP
737 NTAPI
746 
750 NTSTATUS
751 FASTCALL
755 #define IoCallDriver IofCallDriver
756 
759 VOID
760 FASTCALL
762  _In_ PIRP Irp,
764 #define IoCompleteRequest IofCompleteRequest
765 
768 BOOLEAN
769 NTAPI
771  _In_ PIRP Irp);
772 
775 NTSTATUS
776 NTAPI
783 
786 VOID
787 FASTCALL
789  _In_ PIRP Irp,
791 
794 NTSTATUS
795 NTAPI
801  _In_ ULONG Vector,
802  _In_ KIRQL Irql,
808 
810 _Ret_range_(<=, 0)
812 NTSTATUS
813 NTAPI
816  _In_ ULONG DeviceExtensionSize,
823  __drv_allocatesMem(Mem)
824  _When_(((_In_function_class_(DRIVER_INITIALIZE))
828 
831 NTSTATUS
832 NTAPI
847  _In_ ULONG Options);
848 
851 PKEVENT
852 NTAPI
854  _In_ PUNICODE_STRING EventName,
856 
859 NTSTATUS
860 NTAPI
864 
867 PKEVENT
868 NTAPI
870  _In_ PUNICODE_STRING EventName,
872 
875 NTSTATUS
876 NTAPI
880 
884 VOID
885 NTAPI
889 
892 NTSTATUS
893 NTAPI
896 
899 VOID
900 NTAPI
903 
906 VOID
907 NTAPI
910 
911 __drv_freesMem(Mem)
914 VOID
915 NTAPI
916 IoFreeIrp(
917  _In_ PIRP Irp);
918 
921 VOID
922 NTAPI
923 IoFreeMdl(
924  PMDL Mdl);
925 
928 VOID
929 NTAPI
932 
935 NTAPI
938 
942 NTAPI
945 
947 NTSTATUS
948 NTAPI
950  _Inout_ PBOOTDISK_INFORMATION BootDiskInformation,
951  _In_ ULONG Size);
952 
956 NTSTATUS
957 NTAPI
961  _Out_
962  _When_(return==0, _At_(AliasSymbolicLinkName->Buffer, __drv_allocatesMem(Mem)))
963  PUNICODE_STRING AliasSymbolicLinkName);
964 
966 PEPROCESS
967 NTAPI
969 
973 NTSTATUS
974 NTAPI
978  _In_ ULONG Flags,
982 
985 NTSTATUS
986 NTAPI
992 
999 NTSTATUS
1000 NTAPI
1007 
1012 NTAPI
1018 
1022 PVOID
1023 NTAPI
1027 
1030 PVOID
1031 NTAPI
1033 
1036 NTAPI
1039 
1042 VOID
1043 NTAPI
1049 
1052 VOID
1053 NTAPI
1055  _Inout_ PIRP Irp,
1057  _In_ CCHAR StackSize);
1058 
1061 VOID
1062 NTAPI
1069 
1072 NTSTATUS
1073 NTAPI
1078 
1081 VOID
1082 NTAPI
1086 
1089 VOID
1090 NTAPI
1093 
1096 BOOLEAN
1097 NTAPI
1101  _In_ _When_(MinorVersion!=0 && MinorVersion!=5 &&
1102  MinorVersion!=16 && MinorVersion!=32 &&
1103  MinorVersion!=48, __drv_reportError("MinorVersion must be 0, 0x5, 0x10, 0x20, or 0x30"))
1105 
1109 NTSTATUS
1110 NTAPI
1115 
1119 NTSTATUS
1120 NTAPI
1126 
1130 NTSTATUS
1131 NTAPI
1138 
1142 NTSTATUS
1143 NTAPI
1145  _In_ IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
1154 
1157 NTSTATUS
1158 NTAPI
1161 
1162 _Requires_lock_held_(_Global_cancel_spin_lock_)
1163 _Releases_lock_(_Global_cancel_spin_lock_)
1167 VOID
1168 NTAPI
1171 
1174 VOID
1175 NTAPI
1177  _Inout_ PIO_REMOVE_LOCK RemoveLock,
1178  _In_opt_ PVOID Tag,
1180 
1182 VOID
1183 NTAPI
1185  _Inout_ PIO_REMOVE_LOCK RemoveLock,
1186  _In_opt_ PVOID Tag,
1188 
1191 VOID
1192 NTAPI
1196 
1199 NTSTATUS
1200 NTAPI
1204 
1207 NTSTATUS
1208 NTAPI
1214 
1217 VOID
1218 NTAPI
1221 
1224 VOID
1225 NTAPI
1226 IoReuseIrp(
1227  _Inout_ PIRP Irp,
1229 
1233 NTSTATUS
1234 NTAPI
1238 
1240 VOID
1241 NTAPI
1247 
1251 VOID
1252 NTAPI
1256 
1259 VOID
1260 NTAPI
1264  _In_ ULONG Key);
1265 
1268 VOID
1269 NTAPI
1275 
1278 VOID
1279 NTAPI
1280 IoStartTimer(
1282 
1285 VOID
1286 NTAPI
1287 IoStopTimer(
1289 
1293 NTSTATUS
1294 NTAPI
1297 
1300 VOID
1301 NTAPI
1304 
1307 VOID
1308 NTAPI
1312 
1315 NTSTATUS
1316 NTAPI
1318  _In_ GUID *Guid,
1321 
1323 NTSTATUS
1324 NTAPI
1326  _In_reads_(ObjectCount) PVOID *DataBlockObjectList,
1327  _In_reads_(ObjectCount) PUNICODE_STRING InstanceNames,
1329  _Inout_ ULONG *InOutBufferSize,
1330  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
1331 
1334 NTSTATUS
1335 NTAPI
1339 
1341 NTSTATUS
1342 NTAPI
1346  _In_ BOOLEAN CombineNames,
1347  _Out_ PUNICODE_STRING SuggestedInstanceName);
1348 
1351 _Ret_range_(<=, 0)
1353 NTSTATUS
1354 NTAPI
1356  _Inout_ _When_(return==0, __drv_aliasesMem) PVOID WnodeEventItem);
1357 
1360 VOID
1361 NTAPI
1363  _In_ PVOID ElEntry);
1364 
1366 PIRP
1367 NTAPI
1369 
1372 NTSTATUS
1373 NTAPI
1376 
1378 VOID
1379 NTAPI
1381  _In_opt_ PIRP Irp);
1382 
1383 $endif (_WDMDDK_)
1384 $if (_NTDDK_)
1385 #if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
1389 NTSTATUS
1390 NTAPI
1392  _In_ PADAPTER_OBJECT AdapterObject,
1396  _In_ PVOID Context);
1397 #endif
1398 
1399 #if !defined(DMA_MACROS_DEFINED)
1400 //DECLSPEC_DEPRECATED_DDK
1401 NTHALAPI
1403 NTAPI
1405  _In_ PADAPTER_OBJECT AdapterObject,
1406  _In_ PMDL Mdl,
1408  _In_ PVOID CurrentVa,
1411 #endif
1412 
1416 VOID
1417 NTAPI
1419  _In_ PCONTROLLER_OBJECT ControllerObject,
1423 
1427 NTAPI
1429  _In_ ULONG Size);
1430 
1433 VOID
1434 NTAPI
1436  _In_ PCONTROLLER_OBJECT ControllerObject);
1437 
1441 VOID
1442 NTAPI
1444  _In_ PCONTROLLER_OBJECT ControllerObject);
1445 
1449 NTAPI
1451 
1455 NTAPI
1457  _In_ PETHREAD Thread);
1458 
1460 VOID
1461 NTAPI
1465 
1469 NTAPI
1471 
1474 PIRP
1475 NTAPI
1477  _In_ PIRP Irp,
1478  _In_ CCHAR StackSize);
1479 
1481 NTSTATUS
1482 NTAPI
1486  _In_opt_ PCONFIGURATION_TYPE ControllerType,
1487  _In_opt_ PULONG ControllerNumber,
1488  _In_opt_ PCONFIGURATION_TYPE PeripheralType,
1489  _In_opt_ PULONG PeripheralNumber,
1490  _In_ PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
1492 
1495 VOID
1496 NTAPI
1498  _In_ PIRP Irp,
1501 
1504 BOOLEAN
1505 NTAPI
1507  _In_ NTSTATUS ErrorStatus,
1510 
1513 VOID
1514 NTAPI
1519 
1522 VOID
1523 NTAPI
1528 
1530 NTSTATUS
1531 NTAPI
1535 
1539 NTSTATUS
1540 NTAPI
1550 
1552 NTSTATUS
1553 NTAPI
1556  _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList,
1557  _In_opt_ ULONG DriverListSize,
1560  _In_opt_ ULONG DeviceListSize,
1561  _Out_ PBOOLEAN ConflictDetected);
1562 
1564 NTSTATUS
1565 NTAPI
1569  _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList,
1570  _In_opt_ ULONG DriverListSize,
1573  _In_opt_ ULONG DeviceListSize,
1574  _In_ BOOLEAN OverrideConflict,
1575  _Out_ PBOOLEAN ConflictDetected);
1576 
1579 VOID
1580 NTAPI
1582  _In_ PIRP Irp,
1584 
1586 NTSTATUS
1587 NTAPI
1593  _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
1595 
1598 BOOLEAN
1599 NTAPI
1601  _In_ BOOLEAN EnableHardErrors);
1602 
1603 $endif (_NTDDK_)
1604 $if (_NTIFS_)
1605 
1607 VOID
1608 NTAPI
1610  _Out_ PKIRQL Irql);
1611 
1613 NTSTATUS
1614 NTAPI
1618 
1620 NTSTATUS
1621 NTAPI
1625  _Out_ PULONG ErrorOffset);
1626 
1628 NTSTATUS
1629 NTAPI
1637 
1639 NTSTATUS
1640 NTAPI
1643  _In_ ULONG Length,
1644  _In_ BOOLEAN SetOperation);
1645 
1647 NTSTATUS
1648 NTAPI
1651  _In_ ULONG Length,
1652  _In_ BOOLEAN SetOperation);
1653 
1655 NTSTATUS
1656 NTAPI
1658  _In_ PFILE_QUOTA_INFORMATION QuotaBuffer,
1659  _In_ ULONG QuotaLength,
1660  _Out_ PULONG ErrorOffset);
1661 
1664 NTAPI
1668 
1671 NTAPI
1675 
1677 BOOLEAN
1678 NTAPI
1685 
1687 NTSTATUS
1688 NTAPI
1689 IoPageRead(
1691  _In_ PMDL Mdl,
1693  _In_ PKEVENT Event,
1695 
1698 NTAPI
1701 
1705 NTAPI
1707 
1709 ULONG
1710 NTAPI
1712  _In_ PIRP Irp);
1713 
1715 PEPROCESS
1716 NTAPI
1718  _In_ PIRP Irp);
1719 
1721 PIRP
1722 NTAPI
1724 
1726 BOOLEAN
1727 NTAPI
1729  _In_ PIRP Irp);
1730 
1732 BOOLEAN
1733 NTAPI
1735  _In_ PETHREAD Thread);
1736 
1738 BOOLEAN
1739 NTAPI
1741  _In_ PIRP Irp,
1742  _In_ PREPARSE_DATA_BUFFER ReparseBuffer);
1743 
1745 NTSTATUS
1746 NTAPI
1750  _In_ ULONG Length,
1753 
1755 NTSTATUS
1756 NTAPI
1760  _In_ ULONG Length,
1761  _Out_ PVOID FsInformation,
1763 
1765 VOID
1766 NTAPI
1768  _In_ PIRP Irp);
1769 
1771 VOID
1772 NTAPI
1775 
1777 NTSTATUS
1778 NTAPI
1782 
1784 VOID
1785 NTAPI
1787  _In_ KIRQL Irql);
1788 
1790 VOID
1791 NTAPI
1795 
1797 NTSTATUS
1798 NTAPI
1802  _In_ ULONG Length,
1804 
1806 VOID
1807 NTAPI
1809  _In_opt_ PIRP Irp);
1810 
1812 NTSTATUS
1813 NTAPI
1816  _In_ PMDL Mdl,
1818  _In_ PKEVENT Event,
1820 
1822 PEPROCESS
1823 NTAPI
1825  _In_ PETHREAD Thread);
1826 
1828 VOID
1829 NTAPI
1832 
1834 VOID
1835 NTAPI
1839 
1841 NTSTATUS
1842 NTAPI
1845  _In_ BOOLEAN AllowRawMount);
1846 
1848 NTSTATUS
1849 NTAPI
1851  _In_ PIRP Irp,
1852  _Out_ PULONG pSessionId);
1853 $endif (_NTIFS_)
1854 
1855 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
1856 
1857 $if (_NTDDK_)
1858 #if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
1859 
1861 BOOLEAN
1862 NTAPI
1865 
1867 NTSTATUS
1868 NTAPI
1871  _In_ BOOLEAN Remote);
1872 
1873 #endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
1874 $endif (_NTDDK_)
1875 
1876 #if (NTDDI_VERSION >= NTDDI_WINXP)
1877 
1878 $if (_WDMDDK_)
1880 NTSTATUS
1881 NTAPI
1883  _Out_ PIO_CSQ Csq,
1890 
1892 VOID
1893 NTAPI
1896  _Inout_ PIRP Irp,
1898 
1900 PIRP
1901 NTAPI
1905 
1907 PIRP
1908 NTAPI
1912 
1914 BOOLEAN
1915 NTAPI
1918  _In_ PIRP Irp);
1919 
1920 #define IoForwardAndCatchIrp IoForwardIrpSynchronously
1921 
1923 VOID
1924 NTAPI
1926  _In_ PVOID ElEntry);
1927 
1931 NTSTATUS
1932 NTAPI
1941 
1942 VOID
1943 NTAPI
1946  _In_ BOOLEAN DeferredStartIo,
1947  _In_ BOOLEAN NonCancelable);
1948 
1950 NTSTATUS
1951 NTAPI
1953  _In_ PVOID DataBlockObject,
1956 
1958 NTSTATUS
1959 NTAPI
1961  _In_ PVOID DataBlockObject,
1967 
1969 NTSTATUS
1970 NTAPI
1972  _In_ PVOID DataBlockObject,
1975 
1977 NTSTATUS
1978 NTAPI
1980  _In_ LPCGUID DataBlockGuid,
1982  _Out_ PVOID *DataBlockObject);
1983 
1985 NTSTATUS
1986 NTAPI
1988  _In_ PVOID DataBlockObject,
1989  _Inout_ ULONG *InOutBufferSize,
1990  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
1991 
1993 NTSTATUS
1994 NTAPI
1996  _In_reads_(ObjectCount) PVOID *DataBlockObjectList,
1998  _Inout_ ULONG *InOutBufferSize,
1999  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2000 
2002 NTSTATUS
2003 NTAPI
2005  _In_ PVOID DataBlockObject,
2007  _Inout_ ULONG *InOutBufferSize,
2008  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2009 
2011 NTSTATUS
2012 NTAPI
2017 
2019 NTSTATUS
2020 NTAPI
2022  _In_ PVOID DataBlockObject,
2024  _In_ ULONG Version,
2025  _In_ ULONG ValueBufferSize,
2026  _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2027 
2029 NTSTATUS
2030 NTAPI
2032  _In_ PVOID DataBlockObject,
2035  _In_ ULONG Version,
2036  _In_ ULONG ValueBufferSize,
2037  _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2038 $endif (_WDMDDK_)
2039 $if (_NTDDK_)
2042 NTSTATUS
2043 FASTCALL
2049 
2052 NTSTATUS
2053 FASTCALL
2059 
2062 NTSTATUS
2063 FASTCALL
2070 
2072 NTSTATUS
2073 NTAPI
2074 IoCreateDisk(
2076  _In_opt_ struct _CREATE_DISK* Disk);
2077 
2079 NTSTATUS
2080 NTAPI
2083  _In_ ULONG BytesPerSector,
2085 
2088 NTSTATUS
2089 NTAPI
2093 
2096 NTSTATUS
2097 NTAPI
2102 
2104 NTSTATUS
2105 NTAPI
2107  _In_ PUNICODE_STRING VolumeNameString);
2108 
2110 NTSTATUS
2111 NTAPI
2115 
2117 NTSTATUS
2118 NTAPI
2120  _In_ PVOID VolumeDeviceObject,
2121  _Out_ _When_(return==0,
2124 
2127 NTSTATUS
2128 NTAPI
2131  _In_reads_(_Inexpressible_(FIELD_OFFSET(DRIVE_LAYOUT_INFORMATION_EX, PartitionEntry[0])))
2132  struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
2133 
2135 NTSTATUS
2136 NTAPI
2151  _In_ ULONG Options,
2153 
2155 NTSTATUS
2156 NTAPI
2160  _Outptr_ PDEVICE_OBJECT *AttachedToDeviceObject);
2161 
2162 $endif (_NTDDK_)
2163 $if (_NTIFS_)
2164 
2167 NTAPI
2172 
2174 NTSTATUS
2175 NTAPI
2179 
2181 NTSTATUS
2182 NTAPI
2185  _Out_writes_bytes_to_opt_(DeviceObjectListSize,(*ActualNumberDeviceObjects)*sizeof(PDEVICE_OBJECT))
2186  PDEVICE_OBJECT *DeviceObjectList,
2187  _In_ ULONG DeviceObjectListSize,
2188  _Out_ PULONG ActualNumberDeviceObjects);
2189 
2192 NTAPI
2195 
2198 NTAPI
2201 
2203 NTSTATUS
2204 NTAPI
2206  _In_ PDEVICE_OBJECT FileSystemDeviceObject,
2208 $endif (_NTIFS_)
2209 
2210 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
2211 
2212 $if (_WDMDDK_)
2213 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
2215 NTSTATUS
2216 NTAPI
2218  _In_ PIRP Irp,
2220 #endif
2221 
2222 $endif (_WDMDDK_)
2223 $if (_WDMDDK_ || _NTDDK_)
2224 #if (NTDDI_VERSION >= NTDDI_WS03)
2225 $endif (_WDMDDK_ || _NTDDK_)
2226 $if (_NTDDK_)
2229 FASTCALL
2231  _In_ PIRP Irp);
2232 
2233 $endif (_NTDDK_)
2234 $if (_WDMDDK_)
2236 NTSTATUS
2237 NTAPI
2239  _Out_ PIO_CSQ Csq,
2246 
2248 NTSTATUS
2249 NTAPI
2252  _Inout_ PIRP Irp,
2255 $endif (_WDMDDK_)
2256 $if (_WDMDDK_ || _NTDDK_)
2257 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
2258 $endif (_WDMDDK_ || _NTDDK_)
2259 $if (_NTDDK_ || _NTIFS_)
2260 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
2261 $endif (_NTDDK_ || _NTIFS_)
2262 
2263 $if (_NTDDK_)
2264 BOOLEAN
2265 NTAPI
2272 $endif (_NTDDK_)
2273 $if (_NTIFS_)
2274 
2276 NTSTATUS
2277 NTAPI
2280  PDRIVER_OBJECT *DriverObjectList,
2283 $endif (_NTIFS_)
2284 $if (_NTDDK_ || _NTIFS_)
2285 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
2286 $endif (_NTDDK_ || _NTIFS_)
2287 
2288 #if (NTDDI_VERSION >= NTDDI_VISTA)
2289 $if (_WDMDDK_)
2291 NTSTATUS
2292 NTAPI
2293 IoGetBootDiskInformationLite(
2294  _Outptr_ PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
2295 
2297 NTSTATUS
2298 NTAPI
2305  _In_ PBOOLEAN WritePermission);
2306 
2308 NTSTATUS
2309 NTAPI
2312 
2314 VOID
2315 NTAPI
2318 
2319 LOGICAL
2320 NTAPI
2322  _In_ ULONG_PTR RegionStart,
2324 
2326 VOID
2327 NTAPI
2333  _In_ PBOOLEAN WritePermission);
2334 
2335 ULONG
2336 NTAPI
2338 
2339 VOID
2340 NTAPI
2344 
2345 VOID
2346 NTAPI
2349 
2352 VOID
2353 NTAPI
2359 
2362 NTAPI
2364  _In_ PIRP Irp);
2365 
2366 NTSTATUS
2367 NTAPI
2369  _In_ PIRP Irp,
2371 
2372 NTSTATUS
2373 NTAPI
2376  _In_ ULONG Length,
2378  _Out_ PVOID *StreamIdentifier);
2379 
2380 PVOID
2381 NTAPI
2384  _In_ PVOID Signature);
2385 
2386 NTSTATUS
2387 NTAPI
2390  _In_ PVOID Signature);
2391 
2395 NTSTATUS
2396 NTAPI
2397 IoRequestDeviceEjectEx(
2402 
2406 NTSTATUS
2407 NTAPI
2408 IoSetDevicePropertyData(
2411  _In_ LCID Lcid,
2412  _In_ ULONG Flags,
2414  _In_ ULONG Size,
2415  _In_opt_ PVOID Data);
2416 
2420 NTSTATUS
2421 NTAPI
2422 IoGetDevicePropertyData(
2425  _In_ LCID Lcid,
2427  _In_ ULONG Size,
2428  _Out_ PVOID Data,
2431 
2432 $endif (_WDMDDK_)
2433 $if (_NTDDK_)
2435 NTSTATUS
2436 NTAPI
2437 IoUpdateDiskGeometry(
2441 
2443 NTAPI
2446 
2448 NTSTATUS
2449 NTAPI
2464  _In_ ULONG Options,
2466 
2467 NTSTATUS
2468 NTAPI
2470  _Inout_ PIRP Irp,
2471  _In_ struct _ECP_LIST *ExtraCreateParameter);
2472 
2473 VOID
2474 NTAPI
2476  _Inout_ PIRP Irp);
2477 
2479 NTSTATUS
2480 NTAPI
2482  _In_ PIRP Irp,
2483  _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter);
2484 
2485 BOOLEAN
2486 NTAPI
2489 
2491 $if (_NTIFS_)
2492 
2494 VOID
2495 NTAPI
2496 IoInitializePriorityInfo(
2498 {
2499  PriorityInfo->Size = sizeof(IO_PRIORITY_INFO);
2500  PriorityInfo->ThreadPriority = 0xffff;
2501  PriorityInfo->IoPriority = IoPriorityNormal;
2502  PriorityInfo->PagePriority = 0;
2503 }
2504 $endif (_NTIFS_)
2505 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
2506 
2507 $if (_WDMDDK_)
2508 #define IoCallDriverStackSafeDefault(a, b) IoCallDriver(a, b)
2509 
2510 #if (NTDDI_VERSION >= NTDDI_WS08)
2514 NTSTATUS
2515 NTAPI
2516 IoReplacePartitionUnit(
2517  _In_ PDEVICE_OBJECT TargetPdo,
2519  _In_ ULONG Flags);
2520 #endif
2521 
2522 $endif (_WDMDDK_)
2523 #if (NTDDI_VERSION >= NTDDI_WIN7)
2524 
2525 $if (_WDMDDK_)
2527 NTSTATUS
2528 NTAPI
2529 IoGetAffinityInterrupt(
2532 
2533 NTSTATUS
2534 NTAPI
2537  _In_opt_ PVOID ContainerObject,
2540 
2541 NTSTATUS
2542 NTAPI
2544  _In_ IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
2546  _In_reads_bytes_opt_(NotificationInformationLength) PVOID NotificationInformation,
2547  _In_ ULONG NotificationInformationLength,
2548  _Out_ PVOID CallbackRegistration);
2549 
2550 VOID
2551 NTAPI
2553  _In_ PVOID CallbackRegistration);
2554 
2558 NTSTATUS
2559 NTAPI
2560 IoUnregisterPlugPlayNotificationEx(
2562 
2566 NTSTATUS
2567 NTAPI
2568 IoGetDeviceNumaNode(
2571 
2572 $endif (_WDMDDK_)
2573 $if (_NTDDK_)
2574 NTSTATUS
2575 NTAPI
2576 IoSetFileObjectIgnoreSharing(
2578 
2579 $endif (_NTDDK_)
2580 $if (_NTIFS_)
2581 
2583 NTSTATUS
2584 NTAPI
2585 IoRegisterFsRegistrationChangeMountAware(
2589 
2591 NTSTATUS
2592 NTAPI
2595  _In_reads_bytes_(FileNameLength) PWSTR NewFileName,
2597 $endif (_NTIFS_)
2598 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
2599 
2600 #if (NTDDI_VERSION >= NTDDI_WIN8)
2601 
2602 $if (_WDMDDK_)
2606 NTSTATUS
2607 IoSetDeviceInterfacePropertyData(
2610  _In_ LCID Lcid,
2611  _In_ ULONG Flags,
2613  _In_ ULONG Size,
2615 
2619 NTSTATUS
2620 IoGetDeviceInterfacePropertyData (
2623  _In_ LCID Lcid,
2625  _In_ ULONG Size,
2629 $endif (_WDMDDK_)
2630 $if (_NTDDK_)
2631 
2633 VOID
2635  _Inout_ PIRP MasterIrp,
2636  _In_ NTSTATUS Status);
2637 $endif (_NTDDK_)
2638 
2639 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2640 
2641 $if (_WDMDDK_)
2642 #if defined(_WIN64)
2644 ULONG
2645 NTAPI
2648 #else
2649 #define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject))
2650 #endif
2651 
2652 /*
2653  * USHORT
2654  * IoSizeOfIrp(
2655  * IN CCHAR StackSize)
2656  */
2657 #define IoSizeOfIrp(_StackSize) \
2658  ((USHORT) (sizeof(IRP) + ((_StackSize) * (sizeof(IO_STACK_LOCATION)))))
2659 
2661 VOID
2663  _Inout_ PIRP Irp)
2664 {
2665  ASSERT(Irp->CurrentLocation <= Irp->StackCount);
2666  Irp->CurrentLocation++;
2667 #ifdef NONAMELESSUNION
2668  Irp->Tail.Overlay.s.u.CurrentStackLocation++;
2669 #else
2670  Irp->Tail.Overlay.CurrentStackLocation++;
2671 #endif
2672 }
2673 
2675 VOID
2677  _Inout_ PIRP Irp)
2678 {
2679  ASSERT(Irp->CurrentLocation > 0);
2680  Irp->CurrentLocation--;
2681 #ifdef NONAMELESSUNION
2682  Irp->Tail.Overlay.s.u.CurrentStackLocation--;
2683 #else
2684  Irp->Tail.Overlay.CurrentStackLocation--;
2685 #endif
2686 }
2687 
2692  _In_ PIRP Irp)
2693 {
2694  ASSERT(Irp->CurrentLocation > 0);
2695 #ifdef NONAMELESSUNION
2696  return ((Irp)->Tail.Overlay.s.u.CurrentStackLocation - 1 );
2697 #else
2698  return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
2699 #endif
2700 }
2701 
2704 VOID
2706  _In_ PIRP Irp,
2712 {
2716  irpSp->CompletionRoutine = CompletionRoutine;
2717  irpSp->Context = Context;
2718  irpSp->Control = 0;
2719 
2721  irpSp->Control = SL_INVOKE_ON_SUCCESS;
2722  }
2723 
2725  irpSp->Control |= SL_INVOKE_ON_ERROR;
2726  }
2727 
2729  irpSp->Control |= SL_INVOKE_ON_CANCEL;
2730  }
2731 }
2732 
2738  _Inout_ PIRP Irp,
2742 }
2743 
2745 VOID
2748  _In_opt_ PIRP Irp,
2750 {
2752 }
2753 
2754 /*
2755  * VOID
2756  * IoReleaseRemoveLock(
2757  * IN PIO_REMOVE_LOCK RemoveLock,
2758  * IN PVOID Tag)
2759  */
2760 #define IoReleaseRemoveLock(_RemoveLock, \
2761  _Tag) \
2762  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
2763 
2764 /*
2765  * VOID
2766  * IoReleaseRemoveLockAndWait(
2767  * IN PIO_REMOVE_LOCK RemoveLock,
2768  * IN PVOID Tag)
2769  */
2770 #define IoReleaseRemoveLockAndWait(_RemoveLock, \
2771  _Tag) \
2772  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
2773 
2774 #if defined(_WIN64)
2777 BOOLEAN
2778 IoIs32bitProcess(
2779  _In_opt_ PIRP Irp);
2780 #endif
2781 
2782 #define PLUGPLAY_REGKEY_DEVICE 1
2783 #define PLUGPLAY_REGKEY_DRIVER 2
2784 #define PLUGPLAY_REGKEY_CURRENT_HWPROFILE 4
2785 
2790  _In_ PIRP Irp)
2791 {
2792  ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
2793 #ifdef NONAMELESSUNION
2794  return Irp->Tail.Overlay.s.u.CurrentStackLocation;
2795 #else
2796  return Irp->Tail.Overlay.CurrentStackLocation;
2797 #endif
2798 }
2799 
2801 VOID
2803  _Inout_ PIRP Irp)
2804 {
2806 }
2807 
2808 /*
2809  * BOOLEAN
2810  * IoIsErrorUserInduced(
2811  * IN NTSTATUS Status);
2812  */
2813 #define IoIsErrorUserInduced(Status) \
2814  ((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
2815  ((Status) == STATUS_IO_TIMEOUT) || \
2816  ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
2817  ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \
2818  ((Status) == STATUS_VERIFY_REQUIRED) || \
2819  ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
2820  ((Status) == STATUS_WRONG_VOLUME)))
2821 
2822 /* VOID
2823  * IoInitializeRemoveLock(
2824  * IN PIO_REMOVE_LOCK Lock,
2825  * IN ULONG AllocateTag,
2826  * IN ULONG MaxLockedMinutes,
2827  * IN ULONG HighWatermark)
2828  */
2829 #define IoInitializeRemoveLock( \
2830  Lock, AllocateTag, MaxLockedMinutes, HighWatermark) \
2831  IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
2832  HighWatermark, sizeof(IO_REMOVE_LOCK))
2833 
2835 VOID
2839 {
2840 #ifdef _MSC_VER
2841 #pragma warning(push)
2842 #pragma warning(disable:28024)
2843 #endif
2846  DeviceObject);
2847 #ifdef _MSC_VER
2848 #pragma warning(pop)
2849 #endif
2850 }
2851 
2852 #define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001
2853 
2854 /*
2855  * ULONG
2856  * IoGetFunctionCodeFromCtlCode(
2857  * IN ULONG ControlCode)
2858  */
2859 #define IoGetFunctionCodeFromCtlCode(_ControlCode) \
2860  (((_ControlCode) >> 2) & 0x00000FFF)
2861 
2863 VOID
2865  _Inout_ PIRP Irp)
2866 {
2868  PIO_STACK_LOCATION nextIrpSp;
2870  nextIrpSp = IoGetNextIrpStackLocation(Irp);
2872  nextIrpSp->Control = 0;
2873 }
2874 
2877 VOID
2878 NTAPI
2880  _Out_ PULONG_PTR LowLimit,
2882 
2885 ULONG_PTR
2886 IoGetRemainingStackSize(VOID)
2887 {
2888  ULONG_PTR End, Begin;
2889  ULONG_PTR Result;
2890 
2891  IoGetStackLimits(&Begin, &End);
2892  Result = (ULONG_PTR)(&End) - Begin;
2893  return Result;
2894 }
2895 
2896 #if (NTDDI_VERSION >= NTDDI_WS03)
2898 VOID
2902 {
2903 #ifdef _MSC_VER
2904 #pragma warning(push)
2905 #pragma warning(disable:28024)
2906 #pragma warning(disable:28128)
2907 #endif
2910  DeviceObject );
2911 #ifdef _MSC_VER
2912 #pragma warning(pop)
2913 #endif
2914 }
2915 #endif
2916 
2917 $endif (_WDMDDK_)
_In_ PIO_CSQ_INSERT_IRP CsqInsertIrp
Definition: iofuncs.h:1884
PGENERIC_MAPPING NTAPI IoGetFileObjectGenericMapping(VOID)
Definition: file.c:3266
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:65
_In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: iofuncs.h:1543
FORCEINLINE VOID IoInitializeDpcRequest(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIO_DPC_ROUTINE DpcRoutine)
Definition: iofuncs.h:2836
NTHALAPI ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
Definition: portio.c:70
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN InvokeOnError
Definition: iofuncs.h:1935
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetBaseFileSystemDeviceObject(_In_ PFILE_OBJECT FileObject)
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1177
NTKERNELAPI NTSTATUS NTAPI IoReportResourceForDetection(_In_ PDRIVER_OBJECT DriverObject, _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList, _In_opt_ ULONG DriverListSize, _In_opt_ PDEVICE_OBJECT DeviceObject, _In_reads_bytes_opt_(DeviceListSize) PCM_RESOURCE_LIST DeviceList, _In_opt_ ULONG DeviceListSize, _Out_ PBOOLEAN ConflictDetected)
_In_ CONST GUID * AliasInterfaceClassGuid
Definition: iofuncs.h:960
_In_ PVOID NotificationStructure
Definition: iofuncs.h:1203
NTSTATUS NTAPI IoUnregisterPlugPlayNotification(IN PVOID NotificationEntry)
Definition: pnpnotify.c:371
_Inout_ PMDL TargetMdl
Definition: iofuncs.h:728
NTKERNELAPI NTSTATUS NTAPI IoWMIQueryAllDataMultiple(_In_reads_(ObjectCount) PVOID *DataBlockObjectList, _In_ ULONG ObjectCount, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
_In_ PDRIVER_FS_NOTIFICATION _In_ BOOLEAN SynchronizeWithMounts
Definition: iofuncs.h:2587
FORCEINLINE VOID IoMarkIrpPending(_Inout_ PIRP Irp)
Definition: iofuncs.h:2802
CPPORT Port[4]
Definition: headless.c:34
VOID NTAPI DpcRoutine(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: fbtpnp.c:1298
#define IN
Definition: typedefs.h:39
_Out_ PULONG_PTR HighLimit
Definition: iofuncs.h:2881
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3767
NTKERNELAPI NTSTATUS NTAPI IoAssignResources(_In_ PUNICODE_STRING RegistryPath, _In_opt_ PUNICODE_STRING DriverClassName, _In_ PDRIVER_OBJECT DriverObject, _In_opt_ PDEVICE_OBJECT DeviceObject, _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources, _Inout_ PCM_RESOURCE_LIST *AllocatedResources)
return
Definition: dirsup.c:529
PPC_QUAL void __inbytestring(unsigned long Port, unsigned char *Buffer, unsigned long Count)
Definition: intrin_ppc.h:584
NTSTATUS NTAPI IoValidateDeviceIoControlAccess(IN PIRP Irp, IN ULONG RequiredAccess)
Definition: util.c:292
DRIVER_CANCEL * PDRIVER_CANCEL
Definition: iotypes.h:2739
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2654
#define _Must_inspect_result_
Definition: no_sal2.h:62
_In_ __drv_reportError("MajorVersion must be 1 or 6")) UCHAR MajorVersion
NTKERNELAPI VOID NTAPI WRITE_REGISTER_ULONG(IN PULONG Register, IN ULONG Value)
DRIVER_NOTIFICATION_CALLBACK_ROUTINE * PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
Definition: iotypes.h:1227
NTKRNLVISTAAPI VOID IoSetMasterIrpStatus(_Inout_ PIRP MasterIrp, _In_ NTSTATUS Status)
Definition: io.c:131
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
Definition: iofuncs.h:2268
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:798
enum _IO_CONTAINER_INFORMATION_CLASS IO_CONTAINER_INFORMATION_CLASS
ULONG MinorVersion
Definition: ros_glue.cpp:5
NTKERNELAPI NTSTATUS NTAPI IoSetSystemPartition(_In_ PUNICODE_STRING VolumeNameString)
_In_opt_ PDEVICE_OBJECT _In_ ULONG _Outptr_result_nullonfailure_ _At_ * SymbolicLinkList(return==0, __drv_allocatesMem(Mem))) PZZWSTR *SymbolicLinkList
NTKERNELAPI VOID NTAPI IoRegisterFileSystem(_In_ __drv_aliasesMem PDEVICE_OBJECT DeviceObject)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
_In_ IO_PRIORITY_HINT PriorityHint
Definition: fltkernel.h:2682
NTSTATUS NTAPI IoOpenDeviceInterfaceRegistryKey(IN PUNICODE_STRING SymbolicLinkName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DeviceInterfaceKey)
Definition: deviface.c:241
NTSTATUS(NTAPI * PIO_QUERY_DEVICE_ROUTINE)(_In_ PVOID Context, _In_ PUNICODE_STRING PathName, _In_ INTERFACE_TYPE BusType, _In_ ULONG BusNumber, _In_ PKEY_VALUE_FULL_INFORMATION *BusInformation, _In_ CONFIGURATION_TYPE ControllerType, _In_ ULONG ControllerNumber, _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation, _In_ CONFIGURATION_TYPE PeripheralType, _In_ ULONG PeripheralNumber, _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation)
Definition: iotypes.h:4413
enum _INTERFACE_TYPE INTERFACE_TYPE
ULONG MajorVersion
Definition: ros_glue.cpp:4
#define SL_PENDING_RETURNED
Definition: iotypes.h:3304
#define _IRQL_uses_cancel_
Definition: driverspecs.h:220
_In_ CONST DEVPROPKEY _In_ LCID _Reserved_ ULONG _In_ ULONG _Out_writes_bytes_to_(Size, *RequiredSize) PVOID Data
NTSTATUS NTAPI IoGetContainerInformation(_In_ IO_CONTAINER_INFORMATION_CLASS InformationClass, _In_opt_ PVOID ContainerObject, _Inout_updates_bytes_opt_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength)
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:696
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(_In_ PFILE_OBJECT FileObject)
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:863
NTKERNELAPI NTSTATUS NTAPI IoVolumeDeviceToDosName(_In_ PVOID VolumeDeviceObject, _Out_ _When_(return==0, _At_(DosName->Buffer, __drv_allocatesMem(Mem))) PUNICODE_STRING DosName)
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4071
NTKERNELAPI BOOLEAN NTAPI IoFastQueryNetworkAttributes(_In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ACCESS_MASK DesiredAccess, _In_ ULONG OpenOptions, _Out_ PIO_STATUS_BLOCK IoStatus, _Out_ PFILE_NETWORK_OPEN_INFORMATION Buffer)
_Must_inspect_result_ _In_ BOOLEAN ChargeQuota
Definition: iofuncs.h:649
_In_ CONST DEVPROPKEY _In_ LCID Lcid
Definition: iofuncs.h:2410
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG EaLength
Definition: iofuncs.h:652
NTKERNELAPI NTSTATUS NTAPI IoVerifyPartitionTable(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN FixErrors)
VOID NTAPI IoReuseIrp(IN OUT PIRP Irp, IN NTSTATUS Status)
Definition: irp.c:1971
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT _In_ NDIS_HANDLE _In_ NDIS_HANDLE _In_ PNDIS_STRING _In_ UINT OpenOptions
Definition: ndis.h:6013
IO_PAGING_PRIORITY FASTCALL IoGetPagingIoPriority(IN PIRP Irp)
Definition: irp.c:1748
PDMA_ADAPTER NTAPI IoGetDmaAdapter(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters)
Definition: pnpdma.c:23
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:133
NTKERNELAPI PFILE_OBJECT NTAPI IoCreateStreamFileObject(_In_opt_ PFILE_OBJECT FileObject, _In_opt_ PDEVICE_OBJECT DeviceObject)
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:688
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: iofuncs.h:1046
#define NTHALAPI
Definition: ntoskrnl.h:40
_In_ ULONG _In_opt_ PVOID EventCategoryData
Definition: iofuncs.h:1146
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
Definition: irp.c:1069
NTKERNELAPI NTSTATUS NTAPI IoQueryFileDosDeviceName(_In_ PFILE_OBJECT FileObject, _Out_ POBJECT_NAME_INFORMATION *ObjectNameInformation)
PCONFIGURATION_INFORMATION NTAPI IoGetConfigurationInformation(VOID)
Definition: iorsrce.c:830
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
Definition: ndis.h:4640
NTKERNELAPI NTSTATUS NTAPI IoWMIQuerySingleInstance(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:156
IO_WORKITEM_ROUTINE * PIO_WORKITEM_ROUTINE
Definition: iotypes.h:498
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
Definition: csq.h:135
#define TRUE
Definition: types.h:120
$if(_WDMDDK_) NTHALAPI VOID NTAPI READ_PORT_BUFFER_UCHAR(IN PUCHAR Port
Definition: ke.h:1
_In_ PDRIVER_REINITIALIZE DriverReinitializationRoutine
Definition: iofuncs.h:1517
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN ShareVector
Definition: iofuncs.h:798
uint16_t * PWSTR
Definition: typedefs.h:56
NTSTATUS NTAPI IoSetIoPriorityHint(_In_ PIRP Irp, _In_ IO_PRIORITY_HINT PriorityHint)
#define _Inout_updates_bytes_opt_(s)
Definition: no_sal2.h:234
struct _IO_DRIVER_CREATE_CONTEXT IO_DRIVER_CREATE_CONTEXT
NTKERNELAPI VOID NTAPI IoSetTopLevelIrp(_In_opt_ PIRP Irp)
_In_ ULONG DevInstKeyType
Definition: iofuncs.h:1123
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2268
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3767
NTKERNELAPI NTSTATUS NTAPI IoCheckEaBufferValidity(_In_ PFILE_FULL_EA_INFORMATION EaBuffer, _In_ ULONG EaLength, _Out_ PULONG ErrorOffset)
PPC_QUAL void __outbytestring(unsigned long const Port, const unsigned char *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:653
unsigned char * PUCHAR
Definition: retypes.h:3
NTSTATUS FASTCALL IoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
Definition: partition.c:495
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID _In_ ULONG _In_ BOOLEAN InternalDeviceIoControl
Definition: iofuncs.h:713
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: dpc.c:724
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer
Definition: iofuncs.h:835
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:213
_In_ PDEVICE_OBJECT _In_ ULONG NumberOfMapRegisters
Definition: iofuncs.h:1393
#define NTKRNLVISTAAPI
ActualNumberDriverObjects _In_ ULONG DriverObjectListSize
Definition: iofuncs.h:2281
VOID NTAPI IoAcquireCancelSpinLock(OUT PKIRQL Irql)
Definition: util.c:56
#define _NTIFS_
Definition: ifssupp.h:20
#define _Outptr_
Definition: no_sal2.h:262
BOOLEAN(NTAPI * PFLUSH_ADAPTER_BUFFERS)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2314
$endif(_WDMDDK_) $if(_NTDDK_) FORCEINLINE VOID NTAPI IoInitializeDriverCreateContext(PIO_DRIVER_CREATE_CONTEXT DriverContext)
Definition: iofuncs.h:550
NTSTATUS NTAPI IoWMIAllocateInstanceIds(IN GUID *Guid, IN ULONG InstanceCount, OUT ULONG *FirstInstanceId)
Definition: wmi.c:82
NTKERNELAPI BOOLEAN NTAPI IoIsSystemThread(_In_ PETHREAD Thread)
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
Definition: csq.h:180
NTKERNELAPI NTSTATUS NTAPI IoWMIDeviceObjectToInstanceName(_In_ PVOID DataBlockObject, _In_ PDEVICE_OBJECT DeviceObject, _Out_ PUNICODE_STRING InstanceName)
NTKERNELAPI NTSTATUS NTAPI IoCheckFunctionAccess(_In_ ACCESS_MASK GrantedAccess, _In_ UCHAR MajorFunction, _In_ UCHAR MinorFunction, _In_ ULONG IoControlCode, _In_opt_ PVOID Argument1, _In_opt_ PVOID Argument2)
NTHALAPI USHORT NTAPI READ_PORT_USHORT(IN PUSHORT Port)
Definition: portio.c:63
VOID NTAPI READ_PORT_BUFFER_UCHAR(IN PUCHAR Port, OUT PUCHAR Buffer, IN ULONG Count)
Definition: portio.c:26
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
Definition: pipe.c:75
VOID NTAPI IoAcquireVpbSpinLock(OUT PKIRQL Irql)
Definition: volume.c:1204
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
NTSTATUS NTAPI IoAllocateSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ ULONG Length, _In_ PVOID Signature, _Out_ PVOID *StreamIdentifier)
NTKERNELAPI NTSTATUS NTAPI IoWMIHandleToInstanceName(_In_ PVOID DataBlockObject, _In_ HANDLE FileHandle, _Out_ PUNICODE_STRING InstanceName)
#define _WDMDDK_
Definition: wdm.template.h:26
NTKERNELAPI NTSTATUS NTAPI IoQueryVolumeInformation(_In_ PFILE_OBJECT FileObject, _In_ FS_INFORMATION_CLASS FsInformationClass, _In_ ULONG Length, _Out_ PVOID FsInformation, _Out_ PULONG ReturnedLength)
NTSTATUS NTAPI IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN ULONG Flags, OUT PWSTR *SymbolicLinkList)
Definition: deviface.c:454
PPC_QUAL unsigned long __indword(const unsigned long Port)
Definition: intrin_ppc.h:569
VOID NTAPI IoDetachDevice(IN PDEVICE_OBJECT TargetDevice)
Definition: device.c:1296
#define _In_function_class_(x)
Definition: sal.h:2944
_In_opt_ PVOID _In_ PIO_WORKITEM IoWorkItem
Definition: iotypes.h:503
NTSTATUS NTAPI IoGetDeviceObjectPointer(IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject)
Definition: device.c:1435
LOGICAL NTAPI IoWithinStackLimits(_In_ ULONG_PTR RegionStart, _In_ SIZE_T RegionSize)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_USHORT(IN PUSHORT Register, IN USHORT Value)
PDEVICE_LIST DeviceList
Definition: utils.c:27
PPC_QUAL void __outbyte(unsigned long const Port, const unsigned char Data)
Definition: intrin_ppc.h:605
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
Definition: iofuncs.h:688
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
DWORD LCID
Definition: nls.h:13
_In_ ULONG EventCategoryFlags
Definition: iofuncs.h:1146
BOOLEAN NTAPI IoIsFileObjectIgnoringSharing(_In_ PFILE_OBJECT FileObject)
PDEVICE_OBJECT NTAPI IoGetDeviceToVerify(IN PETHREAD Thread)
Definition: util.c:336
#define _Ret_range_(l, h)
Definition: no_sal2.h:372
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock
Definition: iofuncs.h:1884
enum _INTERFACE_TYPE * PINTERFACE_TYPE
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:318
NTSTATUS NTAPI IoReadPartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN struct _DRIVE_LAYOUT_INFORMATION_EX **DriveLayout)
Definition: fstubex.c:2245
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
Definition: iofuncs.h:2066
VOID NTAPI IoReleaseRemoveLockAndWaitEx(IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, IN ULONG RemlockSize)
Definition: remlock.c:243
ULONG * PDEVPROPTYPE
Definition: devpropdef.h:24
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:62
VOID NTAPI IoInitializeRemoveLockEx(IN PIO_REMOVE_LOCK RemoveLock, IN ULONG AllocateTag, IN ULONG MaxLockedMinutes, IN ULONG HighWatermark, IN ULONG RemlockSize)
Definition: remlock.c:33
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:421
_In_ CONST GUID _Out_ _When_(return==0, _At_(AliasSymbolicLinkName->Buffer, __drv_allocatesMem(Mem))) PUNICODE_STRING AliasSymbolicLinkName)
NTKERNELAPI ULONG NTAPI READ_REGISTER_ULONG(IN PULONG Register)
_In_ ULONG _In_ ULONG PartitionNumber
Definition: iofuncs.h:2056
ULONG DEVPROPTYPE
Definition: devpropdef.h:24
IoSetCancelRoutine(Irp, CancelRoutine)
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2268
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
Definition: iowork.c:75
_In_ UCHAR EntrySize
Definition: iofuncs.h:640
#define FASTCALL
Definition: nt_native.h:50
VOID NTAPI IoInitializeIrp(IN PIRP Irp, IN USHORT PacketSize, IN CCHAR StackSize)
Definition: irp.c:1854
_Out_ PKIRQL Irql
Definition: csq.h:179
VOID NTAPI IoFreeMapRegisters(IN PADAPTER_OBJECT AdapterObject, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters)
Definition: dma.c:114
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
Definition: iowork.c:64
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:304
VOID NTAPI IoWriteErrorLogEntry(IN PVOID ElEntry)
Definition: error.c:628
NTHALAPI VOID NTAPI READ_PORT_BUFFER_ULONG(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
_In_ ULONG _Out_ ULONG * FirstInstanceId
Definition: iofuncs.h:1319
_In_ PCALLBACK_FUNCTION CallbackFunction
Definition: exfuncs.h:1034
VOID NTAPI IoRemoveShareAccess(IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess)
Definition: file.c:3477
#define _IRQL_raises_(irql)
Definition: driverspecs.h:211
_In_ ACCESS_MASK _Out_ PHANDLE DeviceInterfaceKey
Definition: iofuncs.h:1113
enum _IO_NOTIFICATION_EVENT_CATEGORY IO_NOTIFICATION_EVENT_CATEGORY
PPC_QUAL void __outdwordstring(unsigned long const Port, const unsigned long *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:671
_In_ ULONG SectorSize
Definition: iofuncs.h:2046
_In_ struct _DISK_GEOMETRY_EX * OldDiskGeometry
Definition: iofuncs.h:2439
#define _In_opt_
Definition: no_sal2.h:212
VOID(NTAPI * PFREE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2323
NTKERNELAPI BOOLEAN NTAPI IoIsValidNameGraftingBuffer(_In_ PIRP Irp, _In_ PREPARSE_DATA_BUFFER ReparseBuffer)
NTKERNELAPI VOID NTAPI IoUnregisterFsRegistrationChange(_In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine)
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_updates_bytes_to_opt_(dwBufLen, *pdwDataLen) BYTE *pbData
_In_opt_ PUNICODE_STRING DriverClassName
Definition: halfuncs.h:156
_In_reads_(_Inexpressible_(FIELD_OFFSET(DRIVE_LAYOUT_INFORMATION_EX, PartitionEntry[0]))) struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout)
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ ULONG _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer
VOID NTAPI IoRegisterDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
Definition: driver.c:1783
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:500
NTKERNELAPI NTSTATUS NTAPI IoCreateFileEx(_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER AllocationSize, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG Disposition, _In_ ULONG CreateOptions, _In_opt_ PVOID EaBuffer, _In_ ULONG EaLength, _In_ CREATE_FILE_TYPE CreateFileType, _In_opt_ PVOID InternalParameters, _In_ ULONG Options, _In_opt_ PIO_DRIVER_CREATE_CONTEXT DriverContext)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
Definition: irp.cpp:498
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_ ULONG _In_ CREATE_FILE_TYPE CreateFileType
Definition: iofuncs.h:835
uint32_t ULONG_PTR
Definition: typedefs.h:65
NTKERNELAPI NTSTATUS NTAPI IoWMISetSingleItem(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _In_ ULONG DataItemId, _In_ ULONG Version, _In_ ULONG ValueBufferSize, _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer)
_Out_ PUSHORT NodeNumber
Definition: iofuncs.h:2570
NTSTATUS NTAPI IoEnumerateRegisteredFiltersList(OUT PDRIVER_OBJECT *DriverObjectList, IN ULONG DriverObjectListSize, OUT PULONG ActualNumberDriverObjects)
Definition: volume.c:821
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:318
VOID NTAPI KeInitializeThreadedDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:698
#define _Post_
Definition: no_sal2.h:48
_In_ ULONG _In_ BOOLEAN _In_ BOOLEAN _Inout_opt_ PIRP Irp
Definition: iofuncs.h:657
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
NTKERNELAPI VOID NTAPI IoSetDeviceToVerify(_In_ PETHREAD Thread, _In_opt_ PDEVICE_OBJECT DeviceObject)
FORCEINLINE VOID IoCopyCurrentIrpStackLocationToNext(_Inout_ PIRP Irp)
Definition: iofuncs.h:2864
UCHAR KIRQL
Definition: env_spec_w32.h:591
NTKERNELAPI NTSTATUS NTAPI IoWMISetNotificationCallback(_Inout_ PVOID Object, _In_ WMI_NOTIFICATION_CALLBACK Callback, _In_opt_ PVOID Context)
HANDLE FileHandle
Definition: stats.c:38
VOID NTAPI IoBuildPartialMdl(IN PMDL SourceMdl, IN PMDL TargetMdl, IN PVOID VirtualAddress, IN ULONG Length)
Definition: iomdl.c:96
NTKERNELAPI NTSTATUS NTAPI IoPageRead(_In_ PFILE_OBJECT FileObject, _In_ PMDL Mdl, _In_ PLARGE_INTEGER Offset, _In_ PKEVENT Event, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
NTSTATUS NTAPI IoSetIrpExtraCreateParameter(_Inout_ PIRP Irp, _In_ struct _ECP_LIST *ExtraCreateParameter)
NTKERNELAPI BOOLEAN NTAPI IoIsOperationSynchronous(_In_ PIRP Irp)
NTHALAPI VOID NTAPI WRITE_PORT_USHORT(IN PUSHORT Port, IN USHORT Value)
Definition: portio.c:115
NTSTATUS(NTAPI * PALLOCATE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG NumberOfMapRegisters, _In_ PDRIVER_CONTROL ExecutionRoutine, _In_ PVOID Context)
Definition: iotypes.h:2306
NTKERNELAPI VOID NTAPI IoReleaseRemoveLockEx(_Inout_ PIO_REMOVE_LOCK RemoveLock, _In_opt_ PVOID Tag, _In_ ULONG RemlockSize)
NTKERNELAPI NTSTATUS NTAPI IoCreateFileSpecifyDeviceObjectHint(_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER AllocationSize, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG Disposition, _In_ ULONG CreateOptions, _In_opt_ PVOID EaBuffer, _In_ ULONG EaLength, _In_ CREATE_FILE_TYPE CreateFileType, _In_opt_ PVOID InternalParameters, _In_ ULONG Options, _In_opt_ PVOID DeviceObject)
PTXN_PARAMETER_BLOCK NTAPI IoGetTransactionParameterBlock(_In_ PFILE_OBJECT FileObject)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:430
NTSTATUS NTAPI IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject, IN INTERFACE_TYPE LegacyBusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PCM_RESOURCE_LIST ResourceList, IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL, IN BOOLEAN ResourceAssigned, IN OUT PDEVICE_OBJECT *DeviceObject OPTIONAL)
Definition: pnpreport.c:156
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
#define _Out_writes_bytes_to_opt_(s, c)
Definition: no_sal2.h:240
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE _Inout_opt_ __drv_aliasesMem PVOID _Outptr_result_nullonfailure_ _At_ * NotificationEntry(return==0, __drv_allocatesMem(Mem))) PVOID *NotificationEntry
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2430
NTKERNELAPI NTSTATUS NTAPI IoAttachDeviceToDeviceStackSafe(_In_ PDEVICE_OBJECT SourceDevice, _In_ PDEVICE_OBJECT TargetDevice, _Outptr_ PDEVICE_OBJECT *AttachedToDeviceObject)
NTHALAPI VOID NTAPI WRITE_PORT_UCHAR(IN PUCHAR Port, IN UCHAR Value)
Definition: portio.c:107
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ ULONG _In_ ULONG SectorsPerTrack
Definition: iofuncs.h:2066
PFILE_OBJECT NTAPI IoCreateStreamFileObjectEx(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, OUT PHANDLE FileObjectHandle OPTIONAL)
Definition: file.c:3099
BOOLEAN NTAPI IoIsFileOriginRemote(IN PFILE_OBJECT FileObject)
Definition: file.c:3277
_In_opt_ PUNICODE_STRING _In_opt_ PKTHREAD Thread
Definition: iofuncs.h:1508
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
Definition: wdfrequest.h:1011
_In_ PIRP Irp
Definition: csq.h:116
_In_ ULONG _In_ ULONG _In_ ULONG PartitionType
Definition: iofuncs.h:2056
NTSTATUS NTAPI IoGetDeviceInterfaceAlias(IN PUNICODE_STRING SymbolicLinkName, IN CONST GUID *AliasInterfaceClassGuid, OUT PUNICODE_STRING AliasSymbolicLinkName)
Definition: deviface.c:303
#define _NullNull_terminated_
Definition: no_sal2.h:78
NTKERNELAPI VOID NTAPI IoDisconnectInterruptEx(_In_ PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters)
long LONG
Definition: pedump.c:60
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG Disposition
Definition: iofuncs.h:835
NTSTATUS NTAPI IoConnectInterrupt(OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave)
Definition: irq.c:22
NTKRNLVISTAAPI VOID NTAPI IoQueueWorkItemEx(_Inout_ PIO_WORKITEM IoWorkItem, _In_ PIO_WORKITEM_ROUTINE_EX WorkerRoutine, _In_ WORK_QUEUE_TYPE QueueType, _In_opt_ __drv_aliasesMem PVOID Context)
Definition: io.c:55
VOID NTAPI IoInvalidateDeviceState(IN PDEVICE_OBJECT PhysicalDeviceObject)
Definition: devaction.c:1939
NTKERNELAPI NTSTATUS NTAPI IoWMISetSingleInstance(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _In_ ULONG Version, _In_ ULONG ValueBufferSize, _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer)
#define _Kernel_IoGetDmaAdapter_
Definition: driverspecs.h:225
#define _IRQL_requires_min_(irql)
Definition: driverspecs.h:214
_Kernel_clear_do_init_(__yes)) typedef NTSTATUS(NTAPI DRIVER_ADD_DEVICE)(_In_ struct _DRIVER_OBJECT *DriverObject
VOID NTAPI IoStopTimer(PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:166
VOID NTAPI IoClearIrpExtraCreateParameter(_Inout_ PIRP Irp)
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
Definition: wdfminiport.h:64
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_ ULONG _In_ CREATE_FILE_TYPE _In_opt_ PVOID InternalParameters
Definition: iofuncs.h:835
#define _Releases_lock_(a)
Definition: btrfs_drv.h:208
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
Definition: device.c:966
_Out_ PIO_STATUS_BLOCK _In_reads_bytes_(Length) PVOID FileInformation
_In_opt_ PDEVICE_OBJECT _Out_opt_ PHANDLE FileObjectHandle
Definition: iofuncs.h:2170
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1697
LONG ObjectCount
Definition: comsup.c:7
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:225
#define __drv_aliasesMem
Definition: btrfs_drv.h:205
_In_ WDFDEVICE _In_ ULONG DeviceCharacteristics
Definition: wdfdevice.h:2772
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
Definition: iofuncs.h:2048
_In_opt_ PDRIVER_CANCEL CancelRoutine
Definition: iofuncs.h:2740
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
NTKERNELAPI NTSTATUS NTAPI IoCheckQuerySetFileInformation(_In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _In_ BOOLEAN SetOperation)
VOID NTAPI IoStartPacket(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PULONG Key, IN PDRIVER_CANCEL CancelFunction)
Definition: device.c:1876
NTKERNELAPI NTSTATUS NTAPI IoAttachDevice(_In_ _Kernel_requires_resource_held_(Memory) _When_(return==0, __drv_aliasesMem) PDEVICE_OBJECT SourceDevice, _In_ PUNICODE_STRING TargetDevice, _Out_ PDEVICE_OBJECT *AttachedDevice)
NTKERNELAPI PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
unsigned char BOOLEAN
VOID(NTAPI * PDRIVER_REINITIALIZE)(_In_ struct _DRIVER_OBJECT *DriverObject, _In_opt_ PVOID Context, _In_ ULONG Count)
Definition: iotypes.h:4434
VOID NTAPI IoAllocateController(IN PCONTROLLER_OBJECT ControllerObject, IN PDEVICE_OBJECT DeviceObject, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context)
Definition: controller.c:25
NTKERNELAPI VOID NTAPI IoSetShareAccessEx(_In_ ACCESS_MASK DesiredAccess, _In_ ULONG DesiredShareAccess, _Inout_ PFILE_OBJECT FileObject, _Out_ PSHARE_ACCESS ShareAccess, _In_ PBOOLEAN WritePermission)
NTSTATUS NTAPI IoReportTargetDeviceChange(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure)
Definition: pnpreport.c:465
_Out_ PGROUP_AFFINITY GroupAffinity
Definition: iofuncs.h:2531
enum _KINTERRUPT_MODE KINTERRUPT_MODE
VOID NTAPI IoDisconnectInterrupt(PKINTERRUPT InterruptObject)
Definition: irq.c:140
VOID(NTAPI * PIO_DEVICE_EJECT_CALLBACK)(_In_ NTSTATUS Status, _Inout_opt_ PVOID Context)
Definition: iotypes.h:842
NTKERNELAPI NTSTATUS NTAPI IoSetInformation(_In_ PFILE_OBJECT FileObject, _In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _In_ PVOID FileInformation)
_In_ struct _DISK_GEOMETRY_EX _In_ struct _DISK_GEOMETRY_EX * NewDiskGeometry
Definition: iofuncs.h:2440
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
Definition: iofuncs.h:798
NTKERNELAPI NTSTATUS NTAPI IoQueryFileInformation(_In_ PFILE_OBJECT FileObject, _In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _Out_ PVOID FileInformation, _Out_ PULONG ReturnedLength)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
#define _Out_
Definition: no_sal2.h:160
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY ProcessorEnableMask
Definition: iofuncs.h:798
#define NTKERNELAPI
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
Definition: pnpmgr.c:2096
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
Definition: csq.h:161
Definition: bufpool.h:45
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
Definition: deviface.c:1311
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
DeviceType
Definition: mmdrv.h:41
FORCEINLINE VOID IoInitializeThreadedDpcRequest(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIO_DPC_ROUTINE DpcRoutine)
Definition: iofuncs.h:2899
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: iofuncs.h:642
NTKERNELAPI NTSTATUS NTAPI IoGetRequestorSessionId(_In_ PIRP Irp, _Out_ PULONG pSessionId)
PPC_QUAL unsigned short __inword(const unsigned long Port)
Definition: intrin_ppc.h:554
PIRP NTAPI IoMakeAssociatedIrp(IN PIRP Irp, IN CCHAR StackSize)
Definition: irp.c:1925
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp
Definition: iofuncs.h:1884
VOID NTAPI IoInitializeWorkItem(_In_ PVOID IoObject, _Out_ PIO_WORKITEM IoWorkItem)
__drv_aliasesMem _In_ PVOID ClientIdentificationAddress
Definition: iofuncs.h:1026
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
PDEVICE_OBJECT NTAPI IoGetAttachedDeviceReference(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1406
VOID NTAPI IoFreeAdapterChannel(IN PADAPTER_OBJECT AdapterObject)
Definition: dma.c:103
_In_ PVOID Argument2
Definition: classpnp.h:721
_Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: iofuncs.h:919
PKEVENT NTAPI IoCreateNotificationEvent(IN PUNICODE_STRING EventName, IN PHANDLE EventHandle)
Definition: ioevent.c:70
PPC_QUAL void __outword(unsigned long const Port, const unsigned short Data)
Definition: intrin_ppc.h:621
enum _FSINFOCLASS FS_INFORMATION_CLASS
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
Definition: iofuncs.h:841
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
NTSTATUS NTAPI IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG Action)
Definition: wmi.c:68
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetDeviceAttachmentBaseRef(_In_ PDEVICE_OBJECT DeviceObject)
NTKERNELAPI VOID NTAPI IoCsqInsertIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context)
Insert an IRP into the CSQ.
Definition: csq.c:177
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:859
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
PVOID NTAPI IoAllocateErrorLogEntry(IN PVOID IoObject, IN UCHAR EntrySize)
Definition: error.c:528
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN InvokeOnCancel
Definition: iofuncs.h:1935
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp
Definition: iofuncs.h:1884
#define _Success_(c)
Definition: no_sal2.h:84
PPC_QUAL void __movsb(unsigned char *Destination, const unsigned char *Source, unsigned long Count)
Definition: intrin_ppc.h:323
Status
Definition: gdiplustypes.h:24
PVOID NTAPI IoGetSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ PVOID Signature)
_In_ ULONG DataItemId
Definition: wdfwmi.h:123
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:257
_Must_inspect_result_ NTKERNELAPI NTSTATUS NTAPI IoWMIWriteEvent(_Inout_ _When_(return==0, __drv_aliasesMem) PVOID WnodeEventItem)
VOID FASTCALL IofCompleteRequest(IN PIRP Irp, IN CCHAR PriorityBoost)
Definition: irp.c:1308
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
#define _Requires_lock_not_held_(a)
Definition: btrfs_drv.h:214
#define _Out_opt_
Definition: no_sal2.h:214
enum _IO_PAGING_PRIORITY IO_PAGING_PRIORITY
PHYSICAL_ADDRESS(NTAPI * PMAP_TRANSFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _Inout_ PULONG Length, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2333
_In_ ULONG InBufferSize
Definition: wdfwmi.h:106
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:949
NTKERNELAPI NTSTATUS NTAPI IoVerifyVolume(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN AllowRawMount)
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _Inout_opt_ PVOID _In_opt_ ULONG _In_opt_ PLARGE_INTEGER StartingOffset
Definition: iofuncs.h:699
PVOID NTAPI IoGetInitialStack(VOID)
Definition: util.c:67
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3531
#define InterlockedExchangePointer(Target, Value)
Definition: dshow.h:45
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetLowerDeviceObject(_In_ PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI IoAllocateAdapterChannel(IN PADAPTER_OBJECT AdapterObject, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context)
Definition: adapter.c:30
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_Outptr_ PDEVICE_OBJECT * DiskDeviceObject
Definition: fltkernel.h:1673
NTKERNELAPI NTSTATUS NTAPI IoWMISuggestInstanceName(_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, _In_opt_ PUNICODE_STRING SymbolicLinkName, _In_ BOOLEAN CombineNames, _Out_ PUNICODE_STRING SuggestedInstanceName)
NTKERNELAPI NTSTATUS NTAPI IoWMIQueryAllData(_In_ PVOID DataBlockObject, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
_At_(PropertyBuffer, _Post_z_)) _When_((DeviceProperty &__multiString_type)
_In_ ULONG OutBufferSize
Definition: wdfwmi.h:87
char CCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:760
NTKERNELAPI NTSTATUS NTAPI IoCsqInitializeEx(_Out_ PIO_CSQ Csq, _In_ PIO_CSQ_INSERT_IRP_EX CsqInsertIrpEx, _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp, _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp, _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock, _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock, _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp)
Set up a CSQ struct to initialize the queue (extended version)
Definition: csq.c:143
NTSTATUS NTAPI IoInitializeTimer(IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context)
Definition: iotimer.c:92
#define _Ret_maybenull_
Definition: no_sal2.h:328
NTKERNELAPI NTSTATUS NTAPI IoCheckShareAccessEx(_In_ ACCESS_MASK DesiredAccess, _In_ ULONG DesiredShareAccess, _Inout_ PFILE_OBJECT FileObject, _Inout_ PSHARE_ACCESS ShareAccess, _In_ BOOLEAN Update, _In_ PBOOLEAN WritePermission)
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
Definition: iofuncs.h:1884
NTSTATUS(NTAPI * PIO_CONTAINER_NOTIFICATION_FUNCTION)(VOID)
Definition: iotypes.h:444
#define __string_type
Definition: iotypes.h:1172
BOOLEAN NTAPI IoRaiseInformationalHardError(IN NTSTATUS ErrorStatus, IN PUNICODE_STRING String, IN PKTHREAD Thread)
Definition: error.c:710
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
Definition: iofuncs.h:1935
NTKERNELAPI NTSTATUS NTAPI IoWMIQuerySingleInstanceMultiple(_In_reads_(ObjectCount) PVOID *DataBlockObjectList, _In_reads_(ObjectCount) PUNICODE_STRING InstanceNames, _In_ ULONG ObjectCount, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
NTKERNELAPI VOID NTAPI IoSetShareAccess(_In_ ACCESS_MASK DesiredAccess, _In_ ULONG DesiredShareAccess, _Inout_ PFILE_OBJECT FileObject, _Out_ PSHARE_ACCESS ShareAccess)
IO_DPC_ROUTINE * PIO_DPC_ROUTINE
Definition: iotypes.h:2826
PPC_QUAL void __outwordstring(unsigned long const Port, const unsigned short *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:662
FORCEINLINE VOID IoRequestDpc(_Inout_ PDEVICE_OBJECT DeviceObject, _In_opt_ PIRP Irp, _In_opt_ __drv_aliasesMem PVOID Context)
Definition: iofuncs.h:2746
_In_ ULONG _In_ struct _SET_PARTITION_INFORMATION_EX * PartitionInfo
Definition: iofuncs.h:2101
Definition: bufpool.h:50
#define _Outptr_result_maybenull_
Definition: no_sal2.h:266
irpSp
Definition: iofuncs.h:2715
Type
Definition: Type.h:6
__in PWDFDEVICE_INIT __in BOOLEAN Exclusive
PIRP NTAPI IoBuildAsynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PIO_STATUS_BLOCK IoStatusBlock)
Definition: irp.c:750
NTSTATUS NTAPI IoRegisterLastChanceShutdownNotification(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1663
NTKERNELAPI NTSTATUS NTAPI IoReadDiskSignature(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG BytesPerSector, _Out_ PDISK_SIGNATURE Signature)
BOOLEAN NTAPI IoFlushAdapterBuffers(IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice)
Definition: dma.c:127
VOID NTAPI IoUnregisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1725
NTKERNELAPI NTSTATUS NTAPI IoWMIOpenBlock(_In_ LPCGUID DataBlockGuid, _In_ ULONG DesiredAccess, _Out_ PVOID *DataBlockObject)
Definition: wmi.c:126
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:361
#define _Inout_
Definition: no_sal2.h:162
_In_ ULONG MethodId
Definition: wdfwmi.h:142
NTSTATUS NTAPI IoAcquireRemoveLockEx(IN PIO_REMOVE_LOCK RemoveLock, IN OPTIONAL PVOID Tag, IN LPCSTR File, IN ULONG Line, IN ULONG RemlockSize)
Definition: remlock.c:80
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER AllocationSize
Definition: iofuncs.h:642
NTSTATUS NTAPI IoSetCompletionRoutineEx(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel)
Definition: iocomp.c:220
NTSTATUS NTAPI IoSetPartitionInformationEx(IN PDEVICE_OBJECT DeviceObject, IN ULONG PartitionNumber, IN struct _SET_PARTITION_INFORMATION_EX *PartitionInfo)
Definition: fstubex.c:2312
* PFILE_OBJECT
Definition: iotypes.h:1978
_In_ PVOID IoObject
Definition: iotypes.h:450
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
Definition: iofuncs.h:798
NTKERNELAPI NTSTATUS NTAPI IoReportResourceUsage(_In_opt_ PUNICODE_STRING DriverClassName, _In_ PDRIVER_OBJECT DriverObject, _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList, _In_opt_ ULONG DriverListSize, _In_opt_ PDEVICE_OBJECT DeviceObject, _In_reads_bytes_opt_(DeviceListSize) PCM_RESOURCE_LIST DeviceList, _In_opt_ ULONG DeviceListSize, _In_ BOOLEAN OverrideConflict, _Out_ PBOOLEAN ConflictDetected)
#define _Outptr_result_bytebuffer_(s)
Definition: no_sal2.h:288
VOID NTAPI IoFreeMdl(PMDL Mdl)
Definition: iomdl.c:146
_In_ ULONG DesiredShareAccess
Definition: iofuncs.h:779
#define SL_INVOKE_ON_ERROR
Definition: iotypes.h:3308
_In_ BOOLEAN Cancelable
Definition: iofuncs.h:1255
_In_ PDEVICE_OBJECT SparePdo
Definition: iofuncs.h:2518
VOID NTAPI IoRegisterBootDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
Definition: driver.c:1754
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
Definition: ncftp.h:79
#define _Post_notnull_
Definition: sal.h:701
_In_ INTERFACE_TYPE LegacyBusType
Definition: iofuncs.h:1543
_In_opt_ PVPB _In_ PDEVICE_OBJECT RealDeviceObject
Definition: iofuncs.h:1499
NTKERNELAPI NTSTATUS NTAPI IoCreateDisk(_In_ PDEVICE_OBJECT DeviceObject, _In_opt_ struct _CREATE_DISK *Disk)
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE _In_opt_ __drv_aliasesMem PVOID Context
Definition: iofuncs.h:1046
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
unsigned char UCHAR
Definition: xmlstorage.h:181
#define _Reserved_
Definition: no_sal2.h:504
char * PBOOLEAN
Definition: retypes.h:11
NTKERNELAPI VOID NTAPI IoUnregisterFileSystem(_In_ PDEVICE_OBJECT DeviceObject)
_In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
Definition: iofuncs.h:593
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine
Definition: iofuncs.h:1146
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
Definition: csq.h:117
_In_opt_ PVOID _In_ PCSTR _In_ ULONG _In_ ULONG RemlockSize
Definition: iofuncs.h:615
_In_ ULONG RequiredAccess
Definition: iofuncs.h:2219
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
Definition: ketypes.h:678
BOOLEAN NTAPI IoTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
Definition: pnpmgr.c:2545
NTHALAPI PHYSICAL_ADDRESS NTAPI IoMapTransfer(_In_ PADAPTER_OBJECT AdapterObject, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _Inout_ PULONG Length, _In_ BOOLEAN WriteToDevice)
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
enum _IO_CONTAINER_NOTIFICATION_CLASS IO_CONTAINER_NOTIFICATION_CLASS
BOOLEAN NTAPI IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled)
Definition: error.c:723
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
Definition: iofuncs.h:2046
#define _Outptr_result_nullonfailure_
Definition: no_sal2.h:490
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
Definition: driver.c:1890
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
Definition: batclass.h:187
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:318
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY _In_ BOOLEAN FloatingSave
Definition: iofuncs.h:798
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4431
PPC_QUAL void __indwordstring(unsigned long Port, unsigned long *Buffer, unsigned long Count)
Definition: intrin_ppc.h:598
NTSTATUS NTAPI IoRegisterPlugPlayNotification(IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, IN ULONG EventCategoryFlags, IN PVOID EventCategoryData OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Context, OUT PVOID *NotificationEntry)
Definition: pnpnotify.c:249
#define InterlockedOr
Definition: interlocked.h:224
NTSTATUS NTAPI IoWritePartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout)
Definition: fstubex.c:2429
NTKERNELAPI VOID NTAPI IoFreeErrorLogEntry(_In_ PVOID ElEntry)
_In_ USHORT _In_ CCHAR StackSize
Definition: iofuncs.h:1056
NTKERNELAPI NTSTATUS NTAPI IoSynchronousPageWrite(_In_ PFILE_OBJECT FileObject, _In_ PMDL Mdl, _In_ PLARGE_INTEGER FileOffset, _In_ PKEVENT Event, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: iofuncs.h:642
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
VOID NTAPI IoRequestDeviceEject(IN PDEVICE_OBJECT PhysicalDeviceObject)
Definition: devaction.c:2244
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2691
DRIVER_DISPATCH(nfs41_FsdDispatch)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4061
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
_In_ ULONG _In_ BOOLEAN SecondaryBuffer
Definition: iofuncs.h:657
enum _IO_PRIORITY_HINT IO_PRIORITY_HINT
NTKERNELAPI NTSTATUS NTAPI IoReplaceFileObjectName(_In_ PFILE_OBJECT FileObject, _In_reads_bytes_(FileNameLength) PWSTR NewFileName, _In_ USHORT FileNameLength)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
_In_ ULONG _In_ ACCESS_MASK _Out_ PHANDLE DevInstRegKey
Definition: iofuncs.h:1123
NTKERNELAPI NTSTATUS NTAPI IoRegisterFsRegistrationChange(_In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine)
IN PUCHAR IN ULONG Count
Definition: iofuncs.h:45
NTKERNELAPI PIRP NTAPI IoCsqRemoveIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIO_CSQ_IRP_CONTEXT Context)
Remove anb IRP from the queue.
Definition: csq.c:326
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:112
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
Definition: util.c:150
NTKERNELAPI NTSTATUS NTAPI IoConnectInterruptEx(_Inout_ PIO_CONNECT_INTERRUPT_PARAMETERS Parameters)
ULONG NTAPI IoSizeofWorkItem(VOID)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:456
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:989
PMDL NTAPI IoAllocateMdl(IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN PIRP Irp)
Definition: iomdl.c:22
#define __multiString_type
Definition: iotypes.h:1174
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iofuncs.h:1935
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define _Post_z_
Definition: no_sal2.h:508
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
Definition: iowork.c:40
#define _In_
Definition: no_sal2.h:158
NTKERNELAPI VOID NTAPI IoCancelFileOpen(_In_ PDEVICE_OBJECT DeviceObject, _In_ PFILE_OBJECT FileObject)
NTSTATUS NTAPI IoCheckShareAccess(IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess, IN BOOLEAN Update)
Definition: file.c:3389
IO_WORKITEM_ROUTINE_EX * PIO_WORKITEM_ROUTINE_EX
Definition: iotypes.h:505
Definition: csq.h:222
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2789
ULONG_PTR SIZE_T
Definition: typedefs.h:80
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1251
NTKERNELAPI NTSTATUS NTAPI IoCheckQuerySetVolumeInformation(_In_ FS_INFORMATION_CLASS FsInformationClass, _In_ ULONG Length, _In_ BOOLEAN SetOperation)
VOID NTAPI IoInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
Definition: pnpmgr.c:2486
_Inout_ struct _IRP _In_ PVOID MapRegisterBase
Definition: iotypes.h:191
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
Definition: deviface.c:955
PPC_QUAL void __movsw(unsigned short *Destination, const unsigned short *Source, unsigned long Count)
Definition: intrin_ppc.h:328
NTKERNELAPI NTSTATUS NTAPI IoCreateDevice(_In_ PDRIVER_OBJECT DriverObject, _In_ ULONG DeviceExtensionSize, _In_opt_ PUNICODE_STRING DeviceName, _In_ DEVICE_TYPE DeviceType, _In_ ULONG DeviceCharacteristics, _In_ BOOLEAN Exclusive, _Outptr_result_nullonfailure_ _At_(*DeviceObject, __drv_allocatesMem(Mem) _When_(((_In_function_class_(DRIVER_INITIALIZE))||(_In_function_class_(DRIVER_DISPATCH))), __drv_aliasesMem)) PDEVICE_OBJECT *DeviceObject)
__drv_freesMem(Mem) _IRQL_requires_max_(DISPATCH_LEVEL) NTKERNELAPI VOID NTAPI IoFreeIrp(_In_ PIRP Irp)
Definition: exfuncs.h:1523
__drv_allocatesMem(Mem) _IRQL_requires_max_(DISPATCH_LEVEL) NTKERNELAPI PIO_WORKITEM NTAPI IoAllocateWorkItem(_In_ PDEVICE_OBJECT DeviceObject)
Definition: xferpkt.c:322
NTKERNELAPI NTSTATUS NTAPI IoWMIExecuteMethod(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _In_ ULONG MethodId, _In_ ULONG InBufferSize, _Inout_ PULONG OutBufferSize, _Inout_updates_bytes_to_opt_(*OutBufferSize, InBufferSize) PUCHAR InOutBuffer)
PCONTROLLER_OBJECT NTAPI IoCreateController(IN ULONG Size)
Definition: controller.c:57
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
Definition: wdfdevice.h:3625
_In_ USHORT PacketSize
Definition: iofuncs.h:1056
_In_ PIRP _In_opt_ PULONG _In_opt_ PDRIVER_CANCEL CancelFunction
Definition: iofuncs.h:1272
_In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Deref_out_range_(<=, BufferLength) PULONG ResultLength)
Definition: wdfiotarget.h:648
unsigned short USHORT
Definition: pedump.c:61
_In_ ULONG AllocateTag
Definition: iofuncs.h:1065
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:506
__kernel_entry _Inout_ _Inout_ PSIZE_T RegionSize
Definition: mmfuncs.h:172
_In_ PIO_WORKITEM_ROUTINE WorkerRoutine
Definition: iofuncs.h:1046
#define SL_INVOKE_ON_SUCCESS
Definition: iotypes.h:3307
VOID NTAPI IoStartNextPacketByKey(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable, IN ULONG Key)
Definition: device.c:1817
ULONG_PTR KAFFINITY
Definition: compat.h:85
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1697
NTKERNELAPI NTSTATUS NTAPI IoAttachDeviceByPointer(_In_ PDEVICE_OBJECT SourceDevice, _In_ PDEVICE_OBJECT TargetDevice)
NTKERNELAPI NTSTATUS NTAPI IoEnumerateDeviceObjectList(_In_ PDRIVER_OBJECT DriverObject, _Out_writes_bytes_to_opt_(DeviceObjectListSize,(*ActualNumberDeviceObjects) *sizeof(PDEVICE_OBJECT)) PDEVICE_OBJECT *DeviceObjectList, _In_ ULONG DeviceObjectListSize, _Out_ PULONG ActualNumberDeviceObjects)
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
struct _IO_PRIORITY_INFO IO_PRIORITY_INFO
#define FORCEINLINE
Definition: wdftypes.h:67
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:893
#define DEVICE_TYPE
Definition: guid.c:10
NTKERNELAPI PEPROCESS NTAPI IoGetCurrentProcess(VOID)
Definition: util.c:139
ActualNumberDriverObjects _In_ ULONG _Out_ PULONG ActualNumberDriverObjects
Definition: iofuncs.h:2281
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1270
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
NTKERNELAPI NTSTATUS NTAPI IoAllocateDriverObjectExtension(_In_ PDRIVER_OBJECT DriverObject, _In_ PVOID ClientIdentificationAddress, _In_ ULONG DriverObjectExtensionSize, _Post_ _At_(*DriverObjectExtension, _When_(return==0, __drv_aliasesMem __drv_allocatesMem(Mem) _Post_notnull_)) _When_(return==0, _Outptr_result_bytebuffer_(DriverObjectExtensionSize)) PVOID *DriverObjectExtension)
_In_ CONST GUID * InterfaceClassGuid
Definition: iofuncs.h:1134
NTKERNELAPI PFILE_OBJECT NTAPI IoCreateStreamFileObjectLite(_In_opt_ PFILE_OBJECT FileObject, _In_opt_ PDEVICE_OBJECT DeviceObject)
unsigned int * PULONG
Definition: retypes.h:1
DEVICE_CHANGE_COMPLETE_CALLBACK * PDEVICE_CHANGE_COMPLETE_CALLBACK
Definition: iotypes.h:1234
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_USHORT(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
Definition: portio.c:87
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG ShareAccess
Definition: iofuncs.h:642
NTKERNELAPI NTSTATUS NTAPI IoGetBootDiskInformation(_Inout_ PBOOTDISK_INFORMATION BootDiskInformation, _In_ ULONG Size)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
#define NULL
Definition: types.h:112
_Requires_lock_held_(_Global_cancel_spin_lock_) _Releases_lock_(_Global_cancel_spin_lock_) _IRQL_requires_max_(DISPATCH_LEVEL) _IRQL_requires_min_(DISPATCH_LEVEL) NTKERNELAPI VOID NTAPI IoReleaseCancelSpinLock(_In_ _IRQL_restores_ _IRQL_uses_cancel_ KIRQL Irql)
VOID(NTAPI * PFREE_MAP_REGISTERS)(_In_ PDMA_ADAPTER DmaAdapter, PVOID MapRegisterBase, ULONG NumberOfMapRegisters)
Definition: iotypes.h:2327
VOID NTAPI IoGetStackLimits(OUT PULONG_PTR LowLimit, OUT PULONG_PTR HighLimit)
Definition: util.c:78
NTHALAPI VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
Definition: portio.c:123
NTKERNELAPI NTSTATUS NTAPI IoCsqInsertIrpEx(_Inout_ PIO_CSQ Csq, _Inout_ PIRP Irp, _Out_opt_ PIO_CSQ_IRP_CONTEXT Context, _In_opt_ PVOID InsertContext)
Insert an IRP into the CSQ, with additional tracking context.
Definition: csq.c:205
NTKRNLVISTAAPI IO_PRIORITY_HINT NTAPI IoGetIoPriorityHint(_In_ PIRP Irp)
Definition: io.c:123
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2814
#define IoSkipCurrentIrpStackLocation(Irp)
Definition: ntifs_ex.h:421
VOID NTAPI IoDeleteController(IN PCONTROLLER_OBJECT ControllerObject)
Definition: controller.c:114
VOID NTAPI IoFreeController(IN PCONTROLLER_OBJECT ControllerObject)
Definition: controller.c:125
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
Definition: pnpmgr.c:2335
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
Definition: csq.h:196
PKEVENT NTAPI IoCreateSynchronizationEvent(IN PUNICODE_STRING EventName, IN PHANDLE EventHandle)
Definition: ioevent.c:82
PPC_QUAL void __outdword(unsigned long const Port, const unsigned long Data)
Definition: intrin_ppc.h:637
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:159
BOOL FixErrors
Definition: chkdsk.c:69
PIRP NTAPI IoBuildDeviceIoControlRequest(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
Definition: irp.c:881
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
BOOLEAN NTAPI IoCancelIrp(IN PIRP Irp)
Definition: irp.c:1101
NTSTATUS NTAPI IoCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options)
Definition: file.c:3009
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1694
IO_CSQ Csq
Definition: csqrtns.c:46
_In_ PIO_TIMER_ROUTINE TimerRoutine
Definition: iofuncs.h:1076
PPC_QUAL void __inwordstring(unsigned long Port, unsigned short *Buffer, unsigned long Count)
Definition: intrin_ppc.h:591
NTHALAPI UCHAR NTAPI READ_PORT_UCHAR(IN PUCHAR Port)
Definition: portio.c:56
NTKERNELAPI PEPROCESS NTAPI IoThreadToProcess(_In_ PETHREAD Thread)
PPC_QUAL void __movsd(unsigned long *Destination, const unsigned long *Source, unsigned long Count)
Definition: intrin_ppc.h:333
Definition: iotypes.h:168
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
Definition: fltkernel.h:1162
NTSTATUS FASTCALL IoSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType)
Definition: ntoskrnl.c:60
VOID NTAPI IoFreeIrp(IN PIRP Irp)
Definition: irp.c:1666
* PCONFIGURATION_TYPE
Definition: iotypes.h:4372
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
Definition: csq.h:259
#define SL_INVOKE_ON_CANCEL
Definition: iotypes.h:3306
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:124
_In_ PDEVICE_OBJECT _In_ ULONG _In_ PDRIVER_CONTROL ExecutionRoutine
Definition: iofuncs.h:1393
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_UCHAR(IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count)
Definition: portio.c:77
IO_TIMER_ROUTINE * PIO_TIMER_ROUTINE
Definition: iotypes.h:2842
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
Definition: iofuncs.h:642
unsigned int ULONG
Definition: retypes.h:1
FWMI_NOTIFICATION_CALLBACK * WMI_NOTIFICATION_CALLBACK
Definition: iotypes.h:3463
_In_ ULONG InstanceCount
Definition: iofuncs.h:1319
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
NTKERNELAPI USHORT NTAPI READ_REGISTER_USHORT(IN PUSHORT Register)
NTKERNELAPI NTSTATUS NTAPI IoCheckQuotaBufferValidity(_In_ PFILE_QUOTA_INFORMATION QuotaBuffer, _In_ ULONG QuotaLength, _Out_ PULONG ErrorOffset)
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define ULONG_PTR
Definition: config.h:101
uint32_t * PULONG_PTR
Definition: typedefs.h:65
NTSTATUS NTAPI IoFreeSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ PVOID Signature)
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char UINT32 const char BOOLEAN Begin
Definition: acpixf.h:1297
DRIVER_CONTROL * PDRIVER_CONTROL
Definition: iotypes.h:194
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements
Definition: iofuncs.h:1543
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
VOID NTAPI IoSetHardErrorOrVerifyDevice(IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject)
Definition: util.c:316
NTKERNELAPI PIRP NTAPI IoCsqRemoveNextIrp(_Inout_ PIO_CSQ Csq, _In_opt_ PVOID PeekContext)
IoCsqRemoveNextIrp - Removes the next IRP from the queue.
Definition: csq.c:398
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
PIRP NTAPI IoAllocateIrp(IN CCHAR StackSize, IN BOOLEAN ChargeQuota)
Definition: irp.c:615
NTKERNELAPI NTSTATUS NTAPI IoCsqInitialize(_Out_ PIO_CSQ Csq, _In_ PIO_CSQ_INSERT_IRP CsqInsertIrp, _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp, _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp, _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock, _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock, _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp)
Set up a CSQ struct to initialize the queue.
Definition: csq.c:103
VOID NTAPI IoRaiseHardError(IN PIRP Irp, IN PVPB Vpb, IN PDEVICE_OBJECT RealDeviceObject)
Definition: error.c:664
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
Definition: csq.h:217
const char * PCSTR
Definition: typedefs.h:52
NTKRNLVISTAAPI NTSTATUS NTAPI IoGetIrpExtraCreateParameter(_In_ PIRP Irp, _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter)
VOID NTAPI IoUnregisterContainerNotification(_In_ PVOID CallbackRegistration)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2653
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4431
Definition: File.h:15
NTSTATUS FASTCALL IoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
Definition: ntoskrnl.c:83
_In_ ULONG _In_ ULONG MaxLockedMinutes
Definition: iofuncs.h:1065
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST _In_ BOOLEAN ResourceAssigned
Definition: iofuncs.h:1543
_In_ ULONG _Inout_ PFILE_OBJECT _Inout_ PSHARE_ACCESS _In_ BOOLEAN Update
Definition: iofuncs.h:779
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1714
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:711
#define _Acquires_lock_(lock)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
Definition: sefuncs.h:13
NTKERNELAPI BOOLEAN NTAPI IoForwardIrpSynchronously(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
NTKERNELAPI VOID NTAPI IoReleaseVpbSpinLock(_In_ KIRQL Irql)
_In_opt_ PVPB Vpb
Definition: iofuncs.h:1499
#define IoWMIDeviceObjectToProviderId(DeviceObject)
_In_ ULONG _In_ ULONG _In_ ULONG HighWatermark
Definition: iofuncs.h:1065
static const WCHAR Signature[]
Definition: parser.c:141
NTKERNELAPI NTSTATUS NTAPI IoSetFileOrigin(_In_ PFILE_OBJECT FileObject, _In_ BOOLEAN Remote)
NTSTATUS NTAPI IoReportTargetDeviceChangeAsynchronous(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure, IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL, IN PVOID Context OPTIONAL)
Definition: pnpreport.c:515
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock
Definition: iofuncs.h:1884
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetAttachedDevice(IN PDEVICE_OBJECT DeviceObject)
NTKERNELAPI PEPROCESS NTAPI IoGetRequestorProcess(_In_ PIRP Irp)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_reads_bytes_opt_(EaLength) PVOID EaBuffer
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define _IRQL_restores_
Definition: driverspecs.h:216
NTSTATUS FASTCALL IofCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1258
VOID NTAPI IoUpdateShareAccess(IN PFILE_OBJECT FileObject, OUT PSHARE_ACCESS ShareAccess)
Definition: file.c:3350
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
VOID NTAPI IoUninitializeWorkItem(_Inout_ PIO_WORKITEM IoWorkItem)
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1697
#define _IRQL_saves_
Definition: driverspecs.h:218
NTHALAPI VOID NTAPI READ_PORT_BUFFER_USHORT(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
FORCEINLINE VOID IoSetNextIrpStackLocation(_Inout_ PIRP Irp)
Definition: iofuncs.h:2676
unsigned short * PUSHORT
Definition: retypes.h:2
#define CONST
Definition: pedump.c:81
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define _Kernel_requires_resource_held_(kind)
Definition: driverspecs.h:227
#define _NTDDK_
_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iofuncs.h:977
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:461
NTKERNELAPI VOID NTAPI IoQueueThreadIrp(_In_ PIRP Irp)
DRIVER_FS_NOTIFICATION * PDRIVER_FS_NOTIFICATION
Definition: iotypes.h:7340
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
NTKERNELAPI ULONG NTAPI IoGetRequestorProcessId(_In_ PIRP Irp)
NTKERNELAPI NTSTATUS NTAPI IoGetDiskDeviceObject(_In_ PDEVICE_OBJECT FileSystemDeviceObject, _Out_ PDEVICE_OBJECT *DiskDeviceObject)
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_ULONG(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
Definition: portio.c:97
#define _Inout_opt_
Definition: no_sal2.h:216
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3736
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iofuncs.h:798
BOOLEAN NTAPI IoIsWdmVersionAvailable(IN UCHAR MajorVersion, IN UCHAR MinorVersion)
Definition: util.c:126
VOID NTAPI IoSetStartIoAttributes(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN DeferredStartIo, _In_ BOOLEAN NonCancelable)
VOID NTAPI IoStartNextPacket(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable)
Definition: device.c:1847
NTKERNELAPI NTSTATUS NTAPI IoCheckDesiredAccess(_Inout_ PACCESS_MASK DesiredAccess, _In_ ACCESS_MASK GrantedAccess)
NTKERNELAPI NTSTATUS NTAPI IoQueryDeviceDescription(_In_opt_ PINTERFACE_TYPE BusType, _In_opt_ PULONG BusNumber, _In_opt_ PCONFIGURATION_TYPE ControllerType, _In_opt_ PULONG ControllerNumber, _In_opt_ PCONFIGURATION_TYPE PeripheralType, _In_opt_ PULONG PeripheralNumber, _In_ PIO_QUERY_DEVICE_ROUTINE CalloutRoutine, _Inout_opt_ PVOID Context)
NTSTATUS NTAPI IoRegisterContainerNotification(_In_ IO_CONTAINER_NOTIFICATION_CLASS NotificationClass, _In_ PIO_CONTAINER_NOTIFICATION_FUNCTION CallbackFunction, _In_reads_bytes_opt_(NotificationInformationLength) PVOID NotificationInformation, _In_ ULONG NotificationInformationLength, _Out_ PVOID CallbackRegistration)
_In_ CONST DEVPROPKEY * PropertyKey
Definition: iofuncs.h:2410
_IRQL_requires_max_(PASSIVE_LEVEL) NTSYSAPI NTSTATUS NTAPI ZwCreateFile(_Out_ PHANDLE FileHandle
Definition: Messaging.c:64
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
Definition: intrin_ppc.h:539
_Out_ PHANDLE EventHandle
Definition: iofuncs.h:855
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
enum _CREATE_FILE_TYPE CREATE_FILE_TYPE