ReactOS  0.4.15-dev-2985-g54406bf
iofuncs.h
Go to the documentation of this file.
1 /******************************************************************************
2  * I/O Manager Functions *
3  ******************************************************************************/
4 
5 #include <section_attribs.h>
6 
8 /*
9  * NTSTATUS
10  * IoAcquireRemoveLock(
11  * IN PIO_REMOVE_LOCK RemoveLock,
12  * IN OPTIONAL PVOID Tag)
13  */
14 #if DBG
15 #define IoAcquireRemoveLock(RemoveLock, Tag) \
16  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
17 #else
18 #define IoAcquireRemoveLock(RemoveLock, Tag) \
19  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
20 #endif
21 
22 /*
23  * VOID
24  * IoAdjustPagingPathCount(
25  * IN PLONG Count,
26  * IN BOOLEAN Increment)
27  */
28 #define IoAdjustPagingPathCount(_Count, \
29  _Increment) \
30 { \
31  if (_Increment) \
32  { \
33  InterlockedIncrement(_Count); \
34  } \
35  else \
36  { \
37  InterlockedDecrement(_Count); \
38  } \
39 }
40 
41 #if !defined(_M_AMD64)
43 VOID
44 NTAPI
46  IN PUCHAR Port,
48  IN ULONG Count);
49 
51 VOID
52 NTAPI
54  IN PULONG Port,
56  IN ULONG Count);
57 
59 VOID
60 NTAPI
62  IN PUSHORT Port,
64  IN ULONG Count);
65 
67 UCHAR
68 NTAPI
70  IN PUCHAR Port);
71 
73 ULONG
74 NTAPI
76  IN PULONG Port);
77 
79 USHORT
80 NTAPI
82  IN PUSHORT Port);
83 
85 VOID
86 NTAPI
88  IN PUCHAR Register,
90  IN ULONG Count);
91 
93 VOID
94 NTAPI
96  IN PULONG Register,
98  IN ULONG Count);
99 
101 VOID
102 NTAPI
104  IN PUSHORT Register,
105  IN PUSHORT Buffer,
106  IN ULONG Count);
107 
109 UCHAR
110 NTAPI
112  IN PUCHAR Register);
113 
115 ULONG
116 NTAPI
118  IN PULONG Register);
119 
121 USHORT
122 NTAPI
124  IN PUSHORT Register);
125 
126 NTHALAPI
127 VOID
128 NTAPI
130  IN PUCHAR Port,
131  IN PUCHAR Buffer,
132  IN ULONG Count);
133 
134 NTHALAPI
135 VOID
136 NTAPI
138  IN PULONG Port,
139  IN PULONG Buffer,
140  IN ULONG Count);
141 
142 NTHALAPI
143 VOID
144 NTAPI
146  IN PUSHORT Port,
147  IN PUSHORT Buffer,
148  IN ULONG Count);
149 
150 NTHALAPI
151 VOID
152 NTAPI
154  IN PUCHAR Port,
155  IN UCHAR Value);
156 
157 NTHALAPI
158 VOID
159 NTAPI
161  IN PULONG Port,
162  IN ULONG Value);
163 
164 NTHALAPI
165 VOID
166 NTAPI
168  IN PUSHORT Port,
169  IN USHORT Value);
170 
172 VOID
173 NTAPI
175  IN PUCHAR Register,
176  IN PUCHAR Buffer,
177  IN ULONG Count);
178 
180 VOID
181 NTAPI
183  IN PULONG Register,
184  IN PULONG Buffer,
185  IN ULONG Count);
186 
188 VOID
189 NTAPI
191  IN PUSHORT Register,
192  IN PUSHORT Buffer,
193  IN ULONG Count);
194 
196 VOID
197 NTAPI
199  IN PUCHAR Register,
200  IN UCHAR Value);
201 
203 VOID
204 NTAPI
206  IN PULONG Register,
207  IN ULONG Value);
208 
210 VOID
211 NTAPI
213  IN PUSHORT Register,
214  IN USHORT Value);
215 
216 #else
217 
219 VOID
221  IN PUCHAR Port,
222  IN PUCHAR Buffer,
223  IN ULONG Count)
224 {
226 }
227 
229 VOID
231  IN PULONG Port,
232  IN PULONG Buffer,
233  IN ULONG Count)
234 {
236 }
237 
239 VOID
241  IN PUSHORT Port,
242  IN PUSHORT Buffer,
243  IN ULONG Count)
244 {
246 }
247 
249 UCHAR
251  IN PUCHAR Port)
252 {
253  return __inbyte((USHORT)(ULONG_PTR)Port);
254 }
255 
257 ULONG
259  IN PULONG Port)
260 {
261  return __indword((USHORT)(ULONG_PTR)Port);
262 }
263 
265 USHORT
267  IN PUSHORT Port)
268 {
269  return __inword((USHORT)(ULONG_PTR)Port);
270 }
271 
273 VOID
275  IN PUCHAR Register,
276  IN PUCHAR Buffer,
277  IN ULONG Count)
278 {
279  __movsb(Register, Buffer, Count);
280 }
281 
283 VOID
285  IN PULONG Register,
286  IN PULONG Buffer,
287  IN ULONG Count)
288 {
289  __movsd(Register, Buffer, Count);
290 }
291 
293 VOID
295  IN PUSHORT Register,
296  IN PUSHORT Buffer,
297  IN ULONG Count)
298 {
299  __movsw(Register, Buffer, Count);
300 }
301 
303 UCHAR
305  IN volatile UCHAR *Register)
306 {
307  return *Register;
308 }
309 
311 ULONG
313  IN volatile ULONG *Register)
314 {
315  return *Register;
316 }
317 
319 USHORT
321  IN volatile USHORT *Register)
322 {
323  return *Register;
324 }
325 
327 VOID
329  IN PUCHAR Port,
330  IN PUCHAR Buffer,
331  IN ULONG Count)
332 {
334 }
335 
337 VOID
339  IN PULONG Port,
340  IN PULONG Buffer,
341  IN ULONG Count)
342 {
344 }
345 
347 VOID
349  IN PUSHORT Port,
350  IN PUSHORT Buffer,
351  IN ULONG Count)
352 {
354 }
355 
357 VOID
359  IN PUCHAR Port,
360  IN UCHAR Value)
361 {
363 }
364 
366 VOID
368  IN PULONG Port,
369  IN ULONG Value)
370 {
372 }
373 
375 VOID
377  IN PUSHORT Port,
378  IN USHORT Value)
379 {
381 }
382 
384 VOID
386  IN PUCHAR Register,
387  IN PUCHAR Buffer,
388  IN ULONG Count)
389 {
390  LONG Synch;
391  __movsb(Register, Buffer, Count);
392  InterlockedOr(&Synch, 1);
393 }
394 
396 VOID
398  IN PULONG Register,
399  IN PULONG Buffer,
400  IN ULONG Count)
401 {
402  LONG Synch;
403  __movsd(Register, Buffer, Count);
404  InterlockedOr(&Synch, 1);
405 }
406 
408 VOID
410  IN PUSHORT Register,
411  IN PUSHORT Buffer,
412  IN ULONG Count)
413 {
414  LONG Synch;
415  __movsw(Register, Buffer, Count);
416  InterlockedOr(&Synch, 1);
417 }
418 
420 VOID
422  IN volatile UCHAR *Register,
423  IN UCHAR Value)
424 {
425  LONG Synch;
426  *Register = Value;
427  InterlockedOr(&Synch, 1);
428 }
429 
431 VOID
433  IN volatile ULONG *Register,
434  IN ULONG Value)
435 {
436  LONG Synch;
437  *Register = Value;
438  InterlockedOr(&Synch, 1);
439 }
440 
442 VOID
444  IN volatile USHORT *Register,
445  IN USHORT Value)
446 {
447  LONG Sync;
448  *Register = Value;
449  InterlockedOr(&Sync, 1);
450 }
451 #endif
452 
453 #if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && \
454  (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
455 
456 #define DMA_MACROS_DEFINED
457 
461 NTSTATUS
463  _In_ PDMA_ADAPTER DmaAdapter,
468 {
469  PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
470  AllocateAdapterChannel =
471  *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
472  ASSERT(AllocateAdapterChannel);
473  return AllocateAdapterChannel(DmaAdapter,
474  DeviceObject,
477  Context);
478 }
479 
481 BOOLEAN
482 NTAPI
484  _In_ PDMA_ADAPTER DmaAdapter,
485  _In_ PMDL Mdl,
487  _In_ PVOID CurrentVa,
488  _In_ ULONG Length,
490 {
491  PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
492  FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
493  ASSERT(FlushAdapterBuffers);
494  return FlushAdapterBuffers(DmaAdapter,
495  Mdl,
497  CurrentVa,
498  Length,
499  WriteToDevice);
500 }
501 
503 VOID
504 NTAPI
506  _In_ PDMA_ADAPTER DmaAdapter)
507 {
508  PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
509  FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
510  ASSERT(FreeAdapterChannel);
511  FreeAdapterChannel(DmaAdapter);
512 }
513 
515 VOID
516 NTAPI
518  _In_ PDMA_ADAPTER DmaAdapter,
521 {
522  PFREE_MAP_REGISTERS FreeMapRegisters;
523  FreeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters;
524  ASSERT(FreeMapRegisters);
525  FreeMapRegisters(DmaAdapter, MapRegisterBase, NumberOfMapRegisters);
526 }
527 
530 NTAPI
532  _In_ PDMA_ADAPTER DmaAdapter,
533  _In_ PMDL Mdl,
535  _In_ PVOID CurrentVa,
538 {
539  PMAP_TRANSFER MapTransfer;
540 
541  MapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer;
542  ASSERT(MapTransfer);
543  return MapTransfer(DmaAdapter,
544  Mdl,
546  CurrentVa,
547  Length,
548  WriteToDevice);
549 }
550 #endif
551 
553 $if (_NTDDK_)
554 /*
555  * VOID IoAssignArcName(
556  * IN PUNICODE_STRING ArcName,
557  * IN PUNICODE_STRING DeviceName);
558  */
559 #define IoAssignArcName(_ArcName, _DeviceName) ( \
560  IoCreateSymbolicLink((_ArcName), (_DeviceName)))
561 
562 /*
563  * VOID
564  * IoDeassignArcName(
565  * IN PUNICODE_STRING ArcName)
566  */
567 #define IoDeassignArcName IoDeleteSymbolicLink
568 
570 VOID
571 NTAPI
572 IoInitializeDriverCreateContext(
574 {
576  DriverContext->Size = sizeof(IO_DRIVER_CREATE_CONTEXT);
577 }
578 
579 $endif (_NTDDK_)
580 $if (_NTIFS_)
581 #define IoIsFileOpenedExclusively(FileObject) ( \
582  (BOOLEAN) !( \
583  (FileObject)->SharedRead || \
584  (FileObject)->SharedWrite || \
585  (FileObject)->SharedDelete \
586  ) \
587 )
588 
589 #if (NTDDI_VERSION == NTDDI_WIN2K)
591 NTSTATUS
592 NTAPI
593 IoRegisterFsRegistrationChangeEx(
596 #endif
597 $endif (_NTIFS_)
598 #if (NTDDI_VERSION >= NTDDI_WIN2K)
599 
600 $if (_WDMDDK_)
601 _Acquires_lock_(_Global_cancel_spin_lock_)
602 _Requires_lock_not_held_(_Global_cancel_spin_lock_)
606 VOID
607 NTAPI
610 
613 NTSTATUS
614 NTAPI
616  _Inout_ PIO_REMOVE_LOCK RemoveLock,
618  _In_ PCSTR File,
619  _In_ ULONG Line,
621 
623 _Ret_range_(<=, 0)
625 NTSTATUS
626 NTAPI
630  _In_ ULONG DriverObjectExtensionSize,
631  _Post_ _At_(*DriverObjectExtension, _When_(return==0,
633  _When_(return == 0, _Outptr_result_bytebuffer_(DriverObjectExtensionSize))
634  PVOID *DriverObjectExtension);
635 
638 PVOID
639 NTAPI
643 
647 PIRP
648 NTAPI
652 
655 PMDL
656 NTAPI
663 
668 NTAPI
671 
673 _Ret_range_(<=, 0)
675 NTSTATUS
676 NTAPI
681  _Out_ PDEVICE_OBJECT *AttachedDevice);
682 
687 NTAPI
692 
697 PIRP
698 NTAPI
706 
711 PIRP
712 NTAPI
723 
726 VOID
727 NTAPI
729  _In_ PMDL SourceMdl,
732  _In_ ULONG Length);
733 
738 PIRP
739 NTAPI
748 
752 NTSTATUS
753 FASTCALL
757 #define IoCallDriver IofCallDriver
758 
761 VOID
762 FASTCALL
764  _In_ PIRP Irp,
766 #define IoCompleteRequest IofCompleteRequest
767 
770 BOOLEAN
771 NTAPI
773  _In_ PIRP Irp);
774 
777 NTSTATUS
778 NTAPI
785 
788 VOID
789 FASTCALL
791  _In_ PIRP Irp,
793 
796 NTSTATUS
797 NTAPI
803  _In_ ULONG Vector,
804  _In_ KIRQL Irql,
810 
812 _Ret_range_(<=, 0)
814 NTSTATUS
815 NTAPI
818  _In_ ULONG DeviceExtensionSize,
825  __drv_allocatesMem(Mem)
826  _When_(((_In_function_class_(DRIVER_INITIALIZE))
830 
833 NTSTATUS
834 NTAPI
849  _In_ ULONG Options);
850 
853 PKEVENT
854 NTAPI
856  _In_ PUNICODE_STRING EventName,
858 
861 NTSTATUS
862 NTAPI
866 
869 PKEVENT
870 NTAPI
872  _In_ PUNICODE_STRING EventName,
874 
877 NTSTATUS
878 NTAPI
882 
886 VOID
887 NTAPI
891 
894 NTSTATUS
895 NTAPI
898 
901 VOID
902 NTAPI
905 
908 VOID
909 NTAPI
912 
913 __drv_freesMem(Mem)
916 VOID
917 NTAPI
918 IoFreeIrp(
919  _In_ PIRP Irp);
920 
923 VOID
924 NTAPI
925 IoFreeMdl(
926  PMDL Mdl);
927 
930 VOID
931 NTAPI
934 
937 NTAPI
940 
944 NTAPI
947 
949 NTSTATUS
950 NTAPI
952  _Inout_ PBOOTDISK_INFORMATION BootDiskInformation,
953  _In_ ULONG Size);
954 
958 NTSTATUS
959 NTAPI
963  _Out_
964  _When_(return==0, _At_(AliasSymbolicLinkName->Buffer, __drv_allocatesMem(Mem)))
965  PUNICODE_STRING AliasSymbolicLinkName);
966 
968 PEPROCESS
969 NTAPI
971 
975 NTSTATUS
976 NTAPI
980  _In_ ULONG Flags,
984 
987 NTSTATUS
988 NTAPI
994 
1001 NTSTATUS
1002 NTAPI
1009 
1014 NTAPI
1020 
1024 PVOID
1025 NTAPI
1029 
1032 PVOID
1033 NTAPI
1035 
1038 NTAPI
1041 
1044 VOID
1045 NTAPI
1051 
1054 VOID
1055 NTAPI
1057  _Inout_ PIRP Irp,
1059  _In_ CCHAR StackSize);
1060 
1063 VOID
1064 NTAPI
1071 
1074 NTSTATUS
1075 NTAPI
1080 
1083 VOID
1084 NTAPI
1088 
1091 VOID
1092 NTAPI
1095 
1098 BOOLEAN
1099 NTAPI
1103  _In_ _When_(MinorVersion!=0 && MinorVersion!=5 &&
1104  MinorVersion!=16 && MinorVersion!=32 &&
1105  MinorVersion!=48, __drv_reportError("MinorVersion must be 0, 0x5, 0x10, 0x20, or 0x30"))
1107 
1111 NTSTATUS
1112 NTAPI
1117 
1121 NTSTATUS
1122 NTAPI
1128 
1132 NTSTATUS
1133 NTAPI
1140 
1143 CODE_SEG("PAGE")
1145 NTSTATUS
1146 NTAPI
1148  _In_ IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
1157 
1160 NTSTATUS
1161 NTAPI
1164 
1165 _Requires_lock_held_(_Global_cancel_spin_lock_)
1166 _Releases_lock_(_Global_cancel_spin_lock_)
1170 VOID
1171 NTAPI
1174 
1177 VOID
1178 NTAPI
1180  _Inout_ PIO_REMOVE_LOCK RemoveLock,
1181  _In_opt_ PVOID Tag,
1183 
1185 VOID
1186 NTAPI
1188  _Inout_ PIO_REMOVE_LOCK RemoveLock,
1189  _In_opt_ PVOID Tag,
1191 
1194 VOID
1195 NTAPI
1199 
1202 NTSTATUS
1203 NTAPI
1207 
1210 NTSTATUS
1211 NTAPI
1217 
1220 VOID
1221 NTAPI
1224 
1227 VOID
1228 NTAPI
1229 IoReuseIrp(
1230  _Inout_ PIRP Irp,
1232 
1236 NTSTATUS
1237 NTAPI
1241 
1243 VOID
1244 NTAPI
1250 
1254 VOID
1255 NTAPI
1259 
1262 VOID
1263 NTAPI
1267  _In_ ULONG Key);
1268 
1271 VOID
1272 NTAPI
1278 
1281 VOID
1282 NTAPI
1283 IoStartTimer(
1285 
1288 VOID
1289 NTAPI
1290 IoStopTimer(
1292 
1295 CODE_SEG("PAGE")
1297 NTSTATUS
1298 NTAPI
1301 
1304 VOID
1305 NTAPI
1308 
1311 VOID
1312 NTAPI
1316 
1319 NTSTATUS
1320 NTAPI
1322  _In_ GUID *Guid,
1325 
1327 NTSTATUS
1328 NTAPI
1330  _In_reads_(ObjectCount) PVOID *DataBlockObjectList,
1331  _In_reads_(ObjectCount) PUNICODE_STRING InstanceNames,
1333  _Inout_ ULONG *InOutBufferSize,
1334  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
1335 
1338 NTSTATUS
1339 NTAPI
1343 
1345 NTSTATUS
1346 NTAPI
1350  _In_ BOOLEAN CombineNames,
1351  _Out_ PUNICODE_STRING SuggestedInstanceName);
1352 
1355 _Ret_range_(<=, 0)
1357 NTSTATUS
1358 NTAPI
1360  _Inout_ _When_(return==0, __drv_aliasesMem) PVOID WnodeEventItem);
1361 
1364 VOID
1365 NTAPI
1367  _In_ PVOID ElEntry);
1368 
1370 PIRP
1371 NTAPI
1373 
1376 NTSTATUS
1377 NTAPI
1380 
1382 VOID
1383 NTAPI
1385  _In_opt_ PIRP Irp);
1386 
1387 $endif (_WDMDDK_)
1388 $if (_NTDDK_)
1389 #if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
1393 NTSTATUS
1394 NTAPI
1396  _In_ PADAPTER_OBJECT AdapterObject,
1400  _In_ PVOID Context);
1401 #endif
1402 
1403 #if !defined(DMA_MACROS_DEFINED)
1404 //DECLSPEC_DEPRECATED_DDK
1405 NTHALAPI
1407 NTAPI
1409  _In_ PADAPTER_OBJECT AdapterObject,
1410  _In_ PMDL Mdl,
1412  _In_ PVOID CurrentVa,
1415 #endif
1416 
1420 VOID
1421 NTAPI
1423  _In_ PCONTROLLER_OBJECT ControllerObject,
1427 
1431 NTAPI
1433  _In_ ULONG Size);
1434 
1437 VOID
1438 NTAPI
1440  _In_ PCONTROLLER_OBJECT ControllerObject);
1441 
1445 VOID
1446 NTAPI
1448  _In_ PCONTROLLER_OBJECT ControllerObject);
1449 
1453 NTAPI
1455 
1459 NTAPI
1461  _In_ PETHREAD Thread);
1462 
1464 VOID
1465 NTAPI
1469 
1473 NTAPI
1475 
1478 PIRP
1479 NTAPI
1481  _In_ PIRP Irp,
1482  _In_ CCHAR StackSize);
1483 
1485 NTSTATUS
1486 NTAPI
1490  _In_opt_ PCONFIGURATION_TYPE ControllerType,
1491  _In_opt_ PULONG ControllerNumber,
1492  _In_opt_ PCONFIGURATION_TYPE PeripheralType,
1493  _In_opt_ PULONG PeripheralNumber,
1494  _In_ PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
1496 
1499 VOID
1500 NTAPI
1502  _In_ PIRP Irp,
1505 
1508 BOOLEAN
1509 NTAPI
1511  _In_ NTSTATUS ErrorStatus,
1514 
1517 VOID
1518 NTAPI
1523 
1526 VOID
1527 NTAPI
1532 
1534 NTSTATUS
1535 NTAPI
1539 
1543 NTSTATUS
1544 NTAPI
1554 
1556 NTSTATUS
1557 NTAPI
1560  _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList,
1561  _In_opt_ ULONG DriverListSize,
1564  _In_opt_ ULONG DeviceListSize,
1565  _Out_ PBOOLEAN ConflictDetected);
1566 
1568 NTSTATUS
1569 NTAPI
1573  _In_reads_bytes_opt_(DriverListSize) PCM_RESOURCE_LIST DriverList,
1574  _In_opt_ ULONG DriverListSize,
1577  _In_opt_ ULONG DeviceListSize,
1578  _In_ BOOLEAN OverrideConflict,
1579  _Out_ PBOOLEAN ConflictDetected);
1580 
1583 VOID
1584 NTAPI
1586  _In_ PIRP Irp,
1588 
1590 NTSTATUS
1591 NTAPI
1597  _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
1599 
1602 BOOLEAN
1603 NTAPI
1605  _In_ BOOLEAN EnableHardErrors);
1606 
1607 $endif (_NTDDK_)
1608 $if (_NTIFS_)
1609 
1611 VOID
1612 NTAPI
1614  _Out_ PKIRQL Irql);
1615 
1617 NTSTATUS
1618 NTAPI
1622 
1624 NTSTATUS
1625 NTAPI
1629  _Out_ PULONG ErrorOffset);
1630 
1632 NTSTATUS
1633 NTAPI
1641 
1643 NTSTATUS
1644 NTAPI
1647  _In_ ULONG Length,
1648  _In_ BOOLEAN SetOperation);
1649 
1651 NTSTATUS
1652 NTAPI
1655  _In_ ULONG Length,
1656  _In_ BOOLEAN SetOperation);
1657 
1659 NTSTATUS
1660 NTAPI
1662  _In_ PFILE_QUOTA_INFORMATION QuotaBuffer,
1663  _In_ ULONG QuotaLength,
1664  _Out_ PULONG ErrorOffset);
1665 
1668 NTAPI
1672 
1675 NTAPI
1679 
1681 BOOLEAN
1682 NTAPI
1689 
1691 NTSTATUS
1692 NTAPI
1693 IoPageRead(
1695  _In_ PMDL Mdl,
1697  _In_ PKEVENT Event,
1699 
1702 NTAPI
1705 
1709 NTAPI
1711 
1713 ULONG
1714 NTAPI
1716  _In_ PIRP Irp);
1717 
1719 PEPROCESS
1720 NTAPI
1722  _In_ PIRP Irp);
1723 
1725 PIRP
1726 NTAPI
1728 
1730 BOOLEAN
1731 NTAPI
1733  _In_ PIRP Irp);
1734 
1736 BOOLEAN
1737 NTAPI
1739  _In_ PETHREAD Thread);
1740 
1742 BOOLEAN
1743 NTAPI
1745  _In_ PIRP Irp,
1746  _In_ PREPARSE_DATA_BUFFER ReparseBuffer);
1747 
1749 NTSTATUS
1750 NTAPI
1754  _In_ ULONG Length,
1757 
1759 NTSTATUS
1760 NTAPI
1764  _In_ ULONG Length,
1765  _Out_ PVOID FsInformation,
1767 
1769 VOID
1770 NTAPI
1772  _In_ PIRP Irp);
1773 
1775 VOID
1776 NTAPI
1779 
1781 NTSTATUS
1782 NTAPI
1786 
1788 VOID
1789 NTAPI
1791  _In_ KIRQL Irql);
1792 
1794 VOID
1795 NTAPI
1799 
1801 NTSTATUS
1802 NTAPI
1806  _In_ ULONG Length,
1808 
1810 VOID
1811 NTAPI
1813  _In_opt_ PIRP Irp);
1814 
1816 NTSTATUS
1817 NTAPI
1820  _In_ PMDL Mdl,
1822  _In_ PKEVENT Event,
1824 
1826 PEPROCESS
1827 NTAPI
1829  _In_ PETHREAD Thread);
1830 
1832 VOID
1833 NTAPI
1836 
1838 VOID
1839 NTAPI
1843 
1845 NTSTATUS
1846 NTAPI
1849  _In_ BOOLEAN AllowRawMount);
1850 
1852 NTSTATUS
1853 NTAPI
1855  _In_ PIRP Irp,
1856  _Out_ PULONG pSessionId);
1857 $endif (_NTIFS_)
1858 
1859 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
1860 
1861 $if (_NTDDK_)
1862 #if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
1863 
1865 BOOLEAN
1866 NTAPI
1869 
1871 NTSTATUS
1872 NTAPI
1875  _In_ BOOLEAN Remote);
1876 
1877 #endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
1878 $endif (_NTDDK_)
1879 
1880 #if (NTDDI_VERSION >= NTDDI_WINXP)
1881 
1882 $if (_WDMDDK_)
1884 NTSTATUS
1885 NTAPI
1887  _Out_ PIO_CSQ Csq,
1894 
1896 VOID
1897 NTAPI
1900  _Inout_ PIRP Irp,
1902 
1904 PIRP
1905 NTAPI
1909 
1911 PIRP
1912 NTAPI
1916 
1918 BOOLEAN
1919 NTAPI
1922  _In_ PIRP Irp);
1923 
1924 #define IoForwardAndCatchIrp IoForwardIrpSynchronously
1925 
1927 VOID
1928 NTAPI
1930  _In_ PVOID ElEntry);
1931 
1935 NTSTATUS
1936 NTAPI
1945 
1946 VOID
1947 NTAPI
1950  _In_ BOOLEAN DeferredStartIo,
1951  _In_ BOOLEAN NonCancelable);
1952 
1954 NTSTATUS
1955 NTAPI
1957  _In_ PVOID DataBlockObject,
1960 
1962 NTSTATUS
1963 NTAPI
1965  _In_ PVOID DataBlockObject,
1971 
1973 NTSTATUS
1974 NTAPI
1976  _In_ PVOID DataBlockObject,
1979 
1981 NTSTATUS
1982 NTAPI
1984  _In_ LPCGUID DataBlockGuid,
1986  _Out_ PVOID *DataBlockObject);
1987 
1989 NTSTATUS
1990 NTAPI
1992  _In_ PVOID DataBlockObject,
1993  _Inout_ ULONG *InOutBufferSize,
1994  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
1995 
1997 NTSTATUS
1998 NTAPI
2000  _In_reads_(ObjectCount) PVOID *DataBlockObjectList,
2002  _Inout_ ULONG *InOutBufferSize,
2003  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2004 
2006 NTSTATUS
2007 NTAPI
2009  _In_ PVOID DataBlockObject,
2011  _Inout_ ULONG *InOutBufferSize,
2012  _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2013 
2015 NTSTATUS
2016 NTAPI
2021 
2023 NTSTATUS
2024 NTAPI
2026  _In_ PVOID DataBlockObject,
2028  _In_ ULONG Version,
2029  _In_ ULONG ValueBufferSize,
2030  _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2031 
2033 NTSTATUS
2034 NTAPI
2036  _In_ PVOID DataBlockObject,
2039  _In_ ULONG Version,
2040  _In_ ULONG ValueBufferSize,
2041  _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2042 $endif (_WDMDDK_)
2043 $if (_NTDDK_)
2046 NTSTATUS
2047 FASTCALL
2053 
2056 NTSTATUS
2057 FASTCALL
2063 
2066 NTSTATUS
2067 FASTCALL
2074 
2076 NTSTATUS
2077 NTAPI
2078 IoCreateDisk(
2080  _In_opt_ struct _CREATE_DISK* Disk);
2081 
2083 NTSTATUS
2084 NTAPI
2087  _In_ ULONG BytesPerSector,
2089 
2092 NTSTATUS
2093 NTAPI
2096  _Out_ struct _DRIVE_LAYOUT_INFORMATION_EX **PartitionBuffer);
2097 
2100 NTSTATUS
2101 NTAPI
2105  _In_ struct _SET_PARTITION_INFORMATION_EX *PartitionInfo);
2106 
2108 NTSTATUS
2109 NTAPI
2111  _In_ PUNICODE_STRING VolumeNameString);
2112 
2114 NTSTATUS
2115 NTAPI
2119 
2121 NTSTATUS
2122 NTAPI
2124  _In_ PVOID VolumeDeviceObject,
2125  _Out_ _When_(return==0,
2128 
2131 NTSTATUS
2132 NTAPI
2135  _In_reads_(_Inexpressible_(FIELD_OFFSET(DRIVE_LAYOUT_INFORMATION_EX, PartitionEntry[0])))
2136  struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
2137 
2139 NTSTATUS
2140 NTAPI
2155  _In_ ULONG Options,
2157 
2159 NTSTATUS
2160 NTAPI
2164  _Outptr_ PDEVICE_OBJECT *AttachedToDeviceObject);
2165 
2166 $endif (_NTDDK_)
2167 $if (_NTIFS_)
2168 
2171 NTAPI
2176 
2178 NTSTATUS
2179 NTAPI
2183 
2185 NTSTATUS
2186 NTAPI
2189  _Out_writes_bytes_to_opt_(DeviceObjectListSize,(*ActualNumberDeviceObjects)*sizeof(PDEVICE_OBJECT))
2190  PDEVICE_OBJECT *DeviceObjectList,
2191  _In_ ULONG DeviceObjectListSize,
2192  _Out_ PULONG ActualNumberDeviceObjects);
2193 
2196 NTAPI
2199 
2202 NTAPI
2205 
2207 NTSTATUS
2208 NTAPI
2210  _In_ PDEVICE_OBJECT FileSystemDeviceObject,
2212 $endif (_NTIFS_)
2213 
2214 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
2215 
2216 $if (_WDMDDK_)
2217 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
2219 NTSTATUS
2220 NTAPI
2222  _In_ PIRP Irp,
2224 #endif
2225 
2226 $endif (_WDMDDK_)
2227 $if (_WDMDDK_ || _NTDDK_)
2228 #if (NTDDI_VERSION >= NTDDI_WS03)
2229 $endif (_WDMDDK_ || _NTDDK_)
2230 $if (_NTDDK_)
2233 FASTCALL
2235  _In_ PIRP Irp);
2236 
2237 $endif (_NTDDK_)
2238 $if (_WDMDDK_)
2240 NTSTATUS
2241 NTAPI
2243  _Out_ PIO_CSQ Csq,
2250 
2252 NTSTATUS
2253 NTAPI
2256  _Inout_ PIRP Irp,
2259 $endif (_WDMDDK_)
2260 $if (_WDMDDK_ || _NTDDK_)
2261 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
2262 $endif (_WDMDDK_ || _NTDDK_)
2263 $if (_NTDDK_ || _NTIFS_)
2264 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
2265 $endif (_NTDDK_ || _NTIFS_)
2266 
2267 $if (_NTDDK_)
2268 BOOLEAN
2269 NTAPI
2276 $endif (_NTDDK_)
2277 $if (_NTIFS_)
2278 
2280 NTSTATUS
2281 NTAPI
2284  PDRIVER_OBJECT *DriverObjectList,
2287 $endif (_NTIFS_)
2288 $if (_NTDDK_ || _NTIFS_)
2289 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
2290 $endif (_NTDDK_ || _NTIFS_)
2291 
2292 #if (NTDDI_VERSION >= NTDDI_VISTA)
2293 $if (_WDMDDK_)
2295 NTSTATUS
2296 NTAPI
2297 IoGetBootDiskInformationLite(
2298  _Outptr_ PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
2299 
2301 NTSTATUS
2302 NTAPI
2309  _In_ PBOOLEAN WritePermission);
2310 
2312 NTSTATUS
2313 NTAPI
2316 
2318 VOID
2319 NTAPI
2322 
2323 LOGICAL
2324 NTAPI
2326  _In_ ULONG_PTR RegionStart,
2328 
2330 VOID
2331 NTAPI
2337  _In_ PBOOLEAN WritePermission);
2338 
2339 ULONG
2340 NTAPI
2342 
2343 VOID
2344 NTAPI
2348 
2349 VOID
2350 NTAPI
2353 
2356 VOID
2357 NTAPI
2363 
2366 NTAPI
2368  _In_ PIRP Irp);
2369 
2370 NTSTATUS
2371 NTAPI
2373  _In_ PIRP Irp,
2375 
2376 NTSTATUS
2377 NTAPI
2380  _In_ ULONG Length,
2382  _Out_ PVOID *StreamIdentifier);
2383 
2384 PVOID
2385 NTAPI
2388  _In_ PVOID Signature);
2389 
2390 NTSTATUS
2391 NTAPI
2394  _In_ PVOID Signature);
2395 
2399 NTSTATUS
2400 NTAPI
2401 IoRequestDeviceEjectEx(
2406 
2410 NTSTATUS
2411 NTAPI
2412 IoSetDevicePropertyData(
2415  _In_ LCID Lcid,
2416  _In_ ULONG Flags,
2418  _In_ ULONG Size,
2419  _In_opt_ PVOID Data);
2420 
2424 NTSTATUS
2425 NTAPI
2426 IoGetDevicePropertyData(
2429  _In_ LCID Lcid,
2431  _In_ ULONG Size,
2432  _Out_ PVOID Data,
2435 
2436 $endif (_WDMDDK_)
2437 $if (_NTDDK_)
2439 NTSTATUS
2440 NTAPI
2441 IoUpdateDiskGeometry(
2445 
2447 NTAPI
2450 
2452 NTSTATUS
2453 NTAPI
2468  _In_ ULONG Options,
2470 
2471 NTSTATUS
2472 NTAPI
2474  _Inout_ PIRP Irp,
2475  _In_ struct _ECP_LIST *ExtraCreateParameter);
2476 
2477 VOID
2478 NTAPI
2480  _Inout_ PIRP Irp);
2481 
2483 NTSTATUS
2484 NTAPI
2486  _In_ PIRP Irp,
2487  _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter);
2488 
2489 BOOLEAN
2490 NTAPI
2493 
2495 $if (_NTIFS_)
2496 
2498 VOID
2499 NTAPI
2500 IoInitializePriorityInfo(
2502 {
2503  PriorityInfo->Size = sizeof(IO_PRIORITY_INFO);
2504  PriorityInfo->ThreadPriority = 0xffff;
2505  PriorityInfo->IoPriority = IoPriorityNormal;
2506  PriorityInfo->PagePriority = 0;
2507 }
2508 $endif (_NTIFS_)
2509 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
2510 
2511 $if (_WDMDDK_)
2512 #define IoCallDriverStackSafeDefault(a, b) IoCallDriver(a, b)
2513 
2514 #if (NTDDI_VERSION >= NTDDI_WS08)
2518 NTSTATUS
2519 NTAPI
2520 IoReplacePartitionUnit(
2521  _In_ PDEVICE_OBJECT TargetPdo,
2523  _In_ ULONG Flags);
2524 #endif
2525 
2526 $endif (_WDMDDK_)
2527 #if (NTDDI_VERSION >= NTDDI_WIN7)
2528 
2529 $if (_WDMDDK_)
2531 NTSTATUS
2532 NTAPI
2533 IoGetAffinityInterrupt(
2536 
2537 NTSTATUS
2538 NTAPI
2541  _In_opt_ PVOID ContainerObject,
2544 
2545 NTSTATUS
2546 NTAPI
2548  _In_ IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
2550  _In_reads_bytes_opt_(NotificationInformationLength) PVOID NotificationInformation,
2551  _In_ ULONG NotificationInformationLength,
2552  _Out_ PVOID CallbackRegistration);
2553 
2554 VOID
2555 NTAPI
2557  _In_ PVOID CallbackRegistration);
2558 
2562 NTSTATUS
2563 NTAPI
2564 IoUnregisterPlugPlayNotificationEx(
2566 
2570 NTSTATUS
2571 NTAPI
2572 IoGetDeviceNumaNode(
2575 
2576 $endif (_WDMDDK_)
2577 $if (_NTDDK_)
2578 NTSTATUS
2579 NTAPI
2580 IoSetFileObjectIgnoreSharing(
2582 
2583 $endif (_NTDDK_)
2584 $if (_NTIFS_)
2585 
2587 NTSTATUS
2588 NTAPI
2589 IoRegisterFsRegistrationChangeMountAware(
2593 
2595 NTSTATUS
2596 NTAPI
2599  _In_reads_bytes_(FileNameLength) PWSTR NewFileName,
2601 $endif (_NTIFS_)
2602 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
2603 
2604 #if (NTDDI_VERSION >= NTDDI_WIN8)
2605 
2606 $if (_WDMDDK_)
2610 NTSTATUS
2611 IoSetDeviceInterfacePropertyData(
2614  _In_ LCID Lcid,
2615  _In_ ULONG Flags,
2617  _In_ ULONG Size,
2619 
2623 NTSTATUS
2624 IoGetDeviceInterfacePropertyData (
2627  _In_ LCID Lcid,
2629  _In_ ULONG Size,
2633 $endif (_WDMDDK_)
2634 $if (_NTDDK_)
2635 
2637 VOID
2639  _Inout_ PIRP MasterIrp,
2640  _In_ NTSTATUS Status);
2641 $endif (_NTDDK_)
2642 
2643 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2644 
2645 $if (_WDMDDK_)
2646 #if defined(_WIN64)
2648 ULONG
2649 NTAPI
2652 #else
2653 #define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject))
2654 #endif
2655 
2656 /*
2657  * USHORT
2658  * IoSizeOfIrp(
2659  * IN CCHAR StackSize)
2660  */
2661 #define IoSizeOfIrp(_StackSize) \
2662  ((USHORT) (sizeof(IRP) + ((_StackSize) * (sizeof(IO_STACK_LOCATION)))))
2663 
2665 VOID
2667  _Inout_ PIRP Irp)
2668 {
2669  ASSERT(Irp->CurrentLocation <= Irp->StackCount);
2670  Irp->CurrentLocation++;
2671 #ifdef NONAMELESSUNION
2672  Irp->Tail.Overlay.s.u.CurrentStackLocation++;
2673 #else
2674  Irp->Tail.Overlay.CurrentStackLocation++;
2675 #endif
2676 }
2677 
2679 VOID
2681  _Inout_ PIRP Irp)
2682 {
2683  ASSERT(Irp->CurrentLocation > 0);
2684  Irp->CurrentLocation--;
2685 #ifdef NONAMELESSUNION
2686  Irp->Tail.Overlay.s.u.CurrentStackLocation--;
2687 #else
2688  Irp->Tail.Overlay.CurrentStackLocation--;
2689 #endif
2690 }
2691 
2696  _In_ PIRP Irp)
2697 {
2698  ASSERT(Irp->CurrentLocation > 0);
2699 #ifdef NONAMELESSUNION
2700  return ((Irp)->Tail.Overlay.s.u.CurrentStackLocation - 1 );
2701 #else
2702  return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
2703 #endif
2704 }
2705 
2708 VOID
2710  _In_ PIRP Irp,
2716 {
2720  irpSp->CompletionRoutine = CompletionRoutine;
2721  irpSp->Context = Context;
2722  irpSp->Control = 0;
2723 
2725  irpSp->Control = SL_INVOKE_ON_SUCCESS;
2726  }
2727 
2729  irpSp->Control |= SL_INVOKE_ON_ERROR;
2730  }
2731 
2733  irpSp->Control |= SL_INVOKE_ON_CANCEL;
2734  }
2735 }
2736 
2742  _Inout_ PIRP Irp,
2746 }
2747 
2749 VOID
2752  _In_opt_ PIRP Irp,
2754 {
2756 }
2757 
2758 /*
2759  * VOID
2760  * IoReleaseRemoveLock(
2761  * IN PIO_REMOVE_LOCK RemoveLock,
2762  * IN PVOID Tag)
2763  */
2764 #define IoReleaseRemoveLock(_RemoveLock, \
2765  _Tag) \
2766  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
2767 
2768 /*
2769  * VOID
2770  * IoReleaseRemoveLockAndWait(
2771  * IN PIO_REMOVE_LOCK RemoveLock,
2772  * IN PVOID Tag)
2773  */
2774 #define IoReleaseRemoveLockAndWait(_RemoveLock, \
2775  _Tag) \
2776  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
2777 
2778 #if defined(_WIN64)
2781 BOOLEAN
2782 IoIs32bitProcess(
2783  _In_opt_ PIRP Irp);
2784 #endif
2785 
2786 #define PLUGPLAY_REGKEY_DEVICE 1
2787 #define PLUGPLAY_REGKEY_DRIVER 2
2788 #define PLUGPLAY_REGKEY_CURRENT_HWPROFILE 4
2789 
2794  _In_ PIRP Irp)
2795 {
2796  ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
2797 #ifdef NONAMELESSUNION
2798  return Irp->Tail.Overlay.s.u.CurrentStackLocation;
2799 #else
2800  return Irp->Tail.Overlay.CurrentStackLocation;
2801 #endif
2802 }
2803 
2805 VOID
2807  _Inout_ PIRP Irp)
2808 {
2810 }
2811 
2812 /*
2813  * BOOLEAN
2814  * IoIsErrorUserInduced(
2815  * IN NTSTATUS Status);
2816  */
2817 #define IoIsErrorUserInduced(Status) \
2818  ((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
2819  ((Status) == STATUS_IO_TIMEOUT) || \
2820  ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
2821  ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \
2822  ((Status) == STATUS_VERIFY_REQUIRED) || \
2823  ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
2824  ((Status) == STATUS_WRONG_VOLUME)))
2825 
2826 /* VOID
2827  * IoInitializeRemoveLock(
2828  * IN PIO_REMOVE_LOCK Lock,
2829  * IN ULONG AllocateTag,
2830  * IN ULONG MaxLockedMinutes,
2831  * IN ULONG HighWatermark)
2832  */
2833 #define IoInitializeRemoveLock( \
2834  Lock, AllocateTag, MaxLockedMinutes, HighWatermark) \
2835  IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
2836  HighWatermark, sizeof(IO_REMOVE_LOCK))
2837 
2839 VOID
2843 {
2844 #ifdef _MSC_VER
2845 #pragma warning(push)
2846 #pragma warning(disable:28024)
2847 #endif
2850  DeviceObject);
2851 #ifdef _MSC_VER
2852 #pragma warning(pop)
2853 #endif
2854 }
2855 
2856 #define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001
2857 
2858 /*
2859  * ULONG
2860  * IoGetFunctionCodeFromCtlCode(
2861  * IN ULONG ControlCode)
2862  */
2863 #define IoGetFunctionCodeFromCtlCode(_ControlCode) \
2864  (((_ControlCode) >> 2) & 0x00000FFF)
2865 
2867 VOID
2869  _Inout_ PIRP Irp)
2870 {
2872  PIO_STACK_LOCATION nextIrpSp;
2874  nextIrpSp = IoGetNextIrpStackLocation(Irp);
2876  nextIrpSp->Control = 0;
2877 }
2878 
2881 VOID
2882 NTAPI
2884  _Out_ PULONG_PTR LowLimit,
2886 
2889 ULONG_PTR
2890 IoGetRemainingStackSize(VOID)
2891 {
2892  ULONG_PTR End, Begin;
2893  ULONG_PTR Result;
2894 
2895  IoGetStackLimits(&Begin, &End);
2896  Result = (ULONG_PTR)(&End) - Begin;
2897  return Result;
2898 }
2899 
2900 #if (NTDDI_VERSION >= NTDDI_WS03)
2902 VOID
2906 {
2907 #ifdef _MSC_VER
2908 #pragma warning(push)
2909 #pragma warning(disable:28024)
2910 #pragma warning(disable:28128)
2911 #endif
2914  DeviceObject );
2915 #ifdef _MSC_VER
2916 #pragma warning(pop)
2917 #endif
2918 }
2919 #endif
2920 
2921 $endif (_WDMDDK_)
_In_ PIO_CSQ_INSERT_IRP CsqInsertIrp
Definition: iofuncs.h:1888
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:1547
FORCEINLINE VOID IoInitializeDpcRequest(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIO_DPC_ROUTINE DpcRoutine)
Definition: iofuncs.h:2840
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:1939
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetBaseFileSystemDeviceObject(_In_ PFILE_OBJECT FileObject)
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194
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:962
_In_ PVOID NotificationStructure
Definition: iofuncs.h:1206
_Inout_ PMDL TargetMdl
Definition: iofuncs.h:730
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:2591
FORCEINLINE VOID IoMarkIrpPending(_Inout_ PIRP Irp)
Definition: iofuncs.h:2806
CPPORT Port[4]
Definition: headless.c:35
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:2885
_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:2759
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2654
_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:1247
NTKRNLVISTAAPI VOID IoSetMasterIrpStatus(_Inout_ PIRP MasterIrp, _In_ NTSTATUS Status)
Definition: io.c:131
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
Definition: iofuncs.h:2272
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:800
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:2681
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:4434
enum _INTERFACE_TYPE INTERFACE_TYPE
ULONG MajorVersion
Definition: ros_glue.cpp:4
#define _In_opt_
Definition: ms_sal.h:309
#define SL_PENDING_RETURNED
Definition: iotypes.h:3325
#define _IRQL_uses_cancel_
Definition: driverspecs.h:237
_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)
#define _Inout_
Definition: ms_sal.h:378
_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:651
_In_ CONST DEVPROPKEY _In_ LCID Lcid
Definition: iofuncs.h:2414
_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
#define _In_function_class_(x)
Definition: ms_sal.h:2944
_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:690
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: iofuncs.h:1048
#define _Out_
Definition: ms_sal.h:345
#define NTHALAPI
Definition: ntoskrnl.h:40
_In_ ULONG _In_opt_ PVOID EventCategoryData
Definition: iofuncs.h:1149
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
#define _Outptr_result_nullonfailure_
Definition: ms_sal.h:441
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:515
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:1521
_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:800
uint16_t * PWSTR
Definition: typedefs.h:56
NTSTATUS NTAPI IoSetIoPriorityHint(_In_ PIRP Irp, _In_ IO_PRIORITY_HINT PriorityHint)
struct _IO_DRIVER_CREATE_CONTEXT IO_DRIVER_CREATE_CONTEXT
NTKERNELAPI VOID NTAPI IoSetTopLevelIrp(_In_opt_ PIRP Irp)
_In_ ULONG DevInstKeyType
Definition: iofuncs.h:1125
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2272
_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:715
#define _Outptr_
Definition: ms_sal.h:427
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: dpc.c:725
_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:837
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
_IRQL_restores_(OldIrql)) _When_(OldIrql !
_In_ PDEVICE_OBJECT _In_ ULONG NumberOfMapRegisters
Definition: iofuncs.h:1397
#define NTKRNLVISTAAPI
ActualNumberDriverObjects _In_ ULONG DriverObjectListSize
Definition: iofuncs.h:2285
VOID NTAPI IoAcquireCancelSpinLock(OUT PKIRQL Irql)
Definition: util.c:56
#define _NTIFS_
Definition: ifssupp.h:20
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:2334
$endif(_WDMDDK_) $if(_NTDDK_) FORCEINLINE VOID NTAPI IoInitializeDriverCreateContext(PIO_DRIVER_CREATE_CONTEXT DriverContext)
Definition: iofuncs.h:552
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
_In_opt_ PVOID _In_ PIO_WORKITEM IoWorkItem
Definition: iotypes.h:520
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:690
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
DWORD LCID
Definition: nls.h:13
_In_ ULONG EventCategoryFlags
Definition: iofuncs.h:1149
BOOLEAN NTAPI IoIsFileObjectIgnoringSharing(_In_ PFILE_OBJECT FileObject)
PDEVICE_OBJECT NTAPI IoGetDeviceToVerify(IN PETHREAD Thread)
Definition: util.c:336
_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:1888
enum _INTERFACE_TYPE * PINTERFACE_TYPE
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:318
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
Definition: iofuncs.h:2070
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:420
_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:2060
ULONG DEVPROPTYPE
Definition: devpropdef.h:24
IoSetCancelRoutine(Irp, CancelRoutine)
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2272
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
Definition: iowork.c:75
_In_ UCHAR EntrySize
Definition: iofuncs.h:642
#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
NTSTATUS NTAPI IoSetPartitionInformationEx(IN PDEVICE_OBJECT DeviceObject, IN ULONG PartitionNumber, IN PSET_PARTITION_INFORMATION_EX PartitionInfo)
Definition: fstubex.c:2341
NTHALAPI VOID NTAPI READ_PORT_BUFFER_ULONG(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
_In_ ULONG _Out_ ULONG * FirstInstanceId
Definition: iofuncs.h:1323
_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:228
_In_ ACCESS_MASK _Out_ PHANDLE DeviceInterfaceKey
Definition: iofuncs.h:1115
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:2050
_In_ struct _DISK_GEOMETRY_EX * OldDiskGeometry
Definition: iofuncs.h:2443
VOID(NTAPI * PFREE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2343
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:1755
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:837
#define _Reserved_
Definition: ms_sal.h:295
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:2574
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:699
_In_ ULONG _In_ BOOLEAN _In_ BOOLEAN _Inout_opt_ PIRP Irp
Definition: iofuncs.h:659
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:2868
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:2326
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
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3272
_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:2070
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:1512
_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:2060
NTSTATUS NTAPI IoGetDeviceInterfaceAlias(IN PUNICODE_STRING SymbolicLinkName, IN CONST GUID *AliasInterfaceClassGuid, OUT PUNICODE_STRING AliasSymbolicLinkName)
Definition: deviface.c:303
#define _Outptr_result_bytebuffer_(size)
Definition: ms_sal.h:472
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:837
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:2018
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:242
#define _IRQL_requires_min_(irql)
Definition: driverspecs.h:231
_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:837
#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:2174
_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:2052
_In_opt_ PDRIVER_CANCEL CancelRoutine
Definition: iofuncs.h:2744
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:4455
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:410
_Out_ PGROUP_AFFINITY GroupAffinity
Definition: iofuncs.h:2535
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:859
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:2444
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
Definition: iofuncs.h:800
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 _In_
Definition: ms_sal.h:308
_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:800
#define _Post_z_
Definition: ms_sal.h:691
#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:1952
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
#define _Success_(expr)
Definition: ms_sal.h:259
_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:2903
_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
#define _Inout_updates_bytes_opt_(size)
Definition: ms_sal.h:400
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:1888
VOID NTAPI IoInitializeWorkItem(_In_ PVOID IoObject, _Out_ PIO_WORKITEM IoWorkItem)
__drv_aliasesMem _In_ PVOID ClientIdentificationAddress
Definition: iofuncs.h:1028
_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:1939
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp
Definition: iofuncs.h:1888
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
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:2353
_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:701
#define _Ret_range_(lb, ub)
Definition: ms_sal.h:573
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:1672
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
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:1888
NTSTATUS(NTAPI * PIO_CONTAINER_NOTIFICATION_FUNCTION)(VOID)
Definition: iotypes.h:461
#define __string_type
Definition: iotypes.h:1189
BOOLEAN NTAPI IoRaiseInformationalHardError(IN NTSTATUS ErrorStatus, IN PUNICODE_STRING String, IN PKTHREAD Thread)
Definition: error.c:710
#define _Post_notnull_
Definition: ms_sal.h:701
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
Definition: iofuncs.h:1939
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:2847
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:2750
_In_ ULONG _In_ struct _SET_PARTITION_INFORMATION_EX * PartitionInfo
Definition: iofuncs.h:2105
Definition: bufpool.h:50
irpSp
Definition: iofuncs.h:2719
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:140
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:361
_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
* PFILE_OBJECT
Definition: iotypes.h:1998
_In_ PVOID IoObject
Definition: iotypes.h:467
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
Definition: iofuncs.h:800
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)
VOID NTAPI IoFreeMdl(PMDL Mdl)
Definition: iomdl.c:146
_In_ ULONG DesiredShareAccess
Definition: iofuncs.h:781
NTSTATUS NTAPI IoReadPartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN PDRIVE_LAYOUT_INFORMATION_EX *DriveLayout)
Definition: fstubex.c:2273
#define SL_INVOKE_ON_ERROR
Definition: iotypes.h:3329
_In_ BOOLEAN Cancelable
Definition: iofuncs.h:1258
#define _Ret_maybenull_
Definition: ms_sal.h:529
_In_ PDEVICE_OBJECT SparePdo
Definition: iofuncs.h:2522
VOID NTAPI IoRegisterBootDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
Definition: driver.c:1726
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
Definition: ncftp.h:79
_In_ INTERFACE_TYPE LegacyBusType
Definition: iofuncs.h:1547
_In_opt_ PVPB _In_ PDEVICE_OBJECT RealDeviceObject
Definition: iofuncs.h:1503
NTKERNELAPI NTSTATUS NTAPI IoCreateDisk(_In_ PDEVICE_OBJECT DeviceObject, _In_opt_ struct _CREATE_DISK *Disk)
NTSTATUS NTAPI IoUnregisterPlugPlayNotification(_In_ PVOID NotificationEntry)
Definition: pnpnotify.c:479
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE _In_opt_ __drv_aliasesMem PVOID Context
Definition: iofuncs.h:1048
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
unsigned char UCHAR
Definition: xmlstorage.h:181
char * PBOOLEAN
Definition: retypes.h:11
NTKERNELAPI VOID NTAPI IoUnregisterFileSystem(_In_ PDEVICE_OBJECT DeviceObject)
_In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
Definition: iofuncs.h:595
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine
Definition: iofuncs.h:1149
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:617
_In_ ULONG RequiredAccess
Definition: iofuncs.h:2223
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:2401
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
#define _Inout_opt_
Definition: ms_sal.h:379
BOOLEAN NTAPI IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled)
Definition: error.c:726
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
Definition: iofuncs.h:2050
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
Definition: driver.c:1862
_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:800
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
#define InterlockedOr
Definition: interlocked.h:224
NTKERNELAPI VOID NTAPI IoFreeErrorLogEntry(_In_ PVOID ElEntry)
_In_ USHORT _In_ CCHAR StackSize
Definition: iofuncs.h:1058
NTKERNELAPI NTSTATUS NTAPI IoSynchronousPageWrite(_In_ PFILE_OBJECT FileObject, _In_ PMDL Mdl, _In_ PLARGE_INTEGER FileOffset, _In_ PKEVENT Event, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
NTSTATUS NTAPI IoWritePartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN PDRIVE_LAYOUT_INFORMATION_EX DriveLayout)
Definition: fstubex.c:2460
_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
#define _Out_writes_bytes_to_opt_(size, count)
Definition: ms_sal.h:361
VOID NTAPI IoRequestDeviceEject(IN PDEVICE_OBJECT PhysicalDeviceObject)
Definition: devaction.c:2232
#define _Must_inspect_result_
Definition: ms_sal.h:558
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2695
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:659
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:1125
NTKERNELAPI NTSTATUS NTAPI IoRegisterFsRegistrationChange(_In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine)
IN PUCHAR IN ULONG Count
Definition: iofuncs.h:47
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
NTSTATUS NTAPI IoReportDetectedDevice(_In_ PDRIVER_OBJECT DriverObject, _In_ INTERFACE_TYPE LegacyBusType, _In_ ULONG BusNumber, _In_ ULONG SlotNumber, _In_opt_ PCM_RESOURCE_LIST ResourceList, _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements, _In_ BOOLEAN ResourceAssigned, _Inout_ PDEVICE_OBJECT *DeviceObject)
Definition: pnpreport.c:148
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:1191
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iofuncs.h:1939
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_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
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:522
Definition: csq.h:222
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
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:2342
_Inout_ struct _IRP _In_ PVOID MapRegisterBase
Definition: iotypes.h:212
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:1058
_In_ PIRP _In_opt_ PULONG _In_opt_ PDRIVER_CANCEL CancelFunction
Definition: iofuncs.h:1275
_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:1067
_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:1048
#define SL_INVOKE_ON_SUCCESS
Definition: iotypes.h:3328
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:2285
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1269
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
#define _Out_opt_
Definition: ms_sal.h:346
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:1136
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:1254
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:2347
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:2835
#define IoSkipCurrentIrpStackLocation(Irp)
Definition: ntifs_ex.h:421
#define _Post_
Definition: ms_sal.h:620
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:2191
_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:1078
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:189
_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:61
VOID NTAPI IoFreeIrp(IN PIRP Irp)
Definition: irp.c:1666
* PCONFIGURATION_TYPE
Definition: iotypes.h:4393
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
Definition: csq.h:259
#define SL_INVOKE_ON_CANCEL
Definition: iotypes.h:3327
_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:1397
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:2863
__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:3484
_In_ ULONG InstanceCount
Definition: iofuncs.h:1323
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)
#define _Outptr_result_maybenull_
Definition: ms_sal.h:428
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:215
NTSTATUS NTAPI IoRegisterPlugPlayNotification(_In_ IO_NOTIFICATION_EVENT_CATEGORY EventCategory, _In_ ULONG EventCategoryFlags, _In_opt_ PVOID EventCategoryData, _In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine, _Inout_opt_ PVOID Context, _Out_ PVOID *NotificationEntry)
Definition: pnpnotify.c:345
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements
Definition: iofuncs.h:1547
#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:2652
_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:84
_In_ ULONG _In_ ULONG MaxLockedMinutes
Definition: iofuncs.h:1067
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST _In_ BOOLEAN ResourceAssigned
Definition: iofuncs.h:1547
_In_ ULONG _Inout_ PFILE_OBJECT _Inout_ PSHARE_ACCESS _In_ BOOLEAN Update
Definition: iofuncs.h:781
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1713
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:712
#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:1503
#define IoWMIDeviceObjectToProviderId(DeviceObject)
_In_ ULONG _In_ ULONG _In_ ULONG HighWatermark
Definition: iofuncs.h:1067
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:460
_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:1888
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetAttachedDevice(IN PDEVICE_OBJECT DeviceObject)
NTKERNELAPI PEPROCESS NTAPI IoGetRequestorProcess(_In_ PIRP Irp)
static CODE_SEG("PAGE")
Definition: isapnp.c:1482
_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
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:235
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:2680
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:244
#define _NTDDK_
_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iofuncs.h:979
_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:7361
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
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3736
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iofuncs.h:800
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:2414
_IRQL_requires_max_(PASSIVE_LEVEL) NTSYSAPI NTSTATUS NTAPI ZwCreateFile(_Out_ PHANDLE FileHandle
Definition: Messaging.c:64
#define _NullNull_terminated_
Definition: ms_sal.h:641
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
Definition: intrin_ppc.h:539
_Out_ PHANDLE EventHandle
Definition: iofuncs.h:857
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
enum _CREATE_FILE_TYPE CREATE_FILE_TYPE