ReactOS 0.4.15-dev-7958-gcd0bb1a
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)
43VOID
49
51VOID
56 IN ULONG Count);
57
59VOID
64 IN ULONG Count);
65
70 IN PUCHAR Port);
71
76 IN PULONG Port);
77
83
85VOID
90 IN ULONG Count);
91
93VOID
98 IN ULONG Count);
99
101VOID
102NTAPI
106 IN ULONG Count);
107
109UCHAR
110NTAPI
113
115ULONG
116NTAPI
119
121USHORT
122NTAPI
125
127VOID
128NTAPI
130 IN PUCHAR Port,
132 IN ULONG Count);
133
135VOID
136NTAPI
138 IN PULONG Port,
140 IN ULONG Count);
141
143VOID
144NTAPI
148 IN ULONG Count);
149
151VOID
152NTAPI
154 IN PUCHAR Port,
155 IN UCHAR Value);
156
158VOID
159NTAPI
161 IN PULONG Port,
162 IN ULONG Value);
163
165VOID
166NTAPI
169 IN USHORT Value);
170
172VOID
173NTAPI
177 IN ULONG Count);
178
180VOID
181NTAPI
185 IN ULONG Count);
186
188VOID
189NTAPI
193 IN ULONG Count);
194
196VOID
197NTAPI
200 IN UCHAR Value);
201
203VOID
204NTAPI
207 IN ULONG Value);
208
210VOID
211NTAPI
214 IN USHORT Value);
215
216#else
217
219VOID
221 IN PUCHAR Port,
223 IN ULONG Count)
224{
226}
227
229VOID
231 IN PULONG Port,
233 IN ULONG Count)
234{
236}
237
239VOID
243 IN ULONG Count)
244{
246}
247
249UCHAR
251 IN PUCHAR Port)
252{
253 return __inbyte((USHORT)(ULONG_PTR)Port);
254}
255
257ULONG
259 IN PULONG Port)
260{
261 return __indword((USHORT)(ULONG_PTR)Port);
262}
263
265USHORT
268{
269 return __inword((USHORT)(ULONG_PTR)Port);
270}
271
273VOID
277 IN ULONG Count)
278{
280}
281
283VOID
287 IN ULONG Count)
288{
290}
291
293VOID
297 IN ULONG Count)
298{
300}
301
303UCHAR
305 IN volatile UCHAR *Register)
306{
307 return *Register;
308}
309
311ULONG
313 IN volatile ULONG *Register)
314{
315 return *Register;
316}
317
319USHORT
321 IN volatile USHORT *Register)
322{
323 return *Register;
324}
325
327VOID
329 IN PUCHAR Port,
331 IN ULONG Count)
332{
334}
335
337VOID
339 IN PULONG Port,
341 IN ULONG Count)
342{
344}
345
347VOID
351 IN ULONG Count)
352{
354}
355
357VOID
359 IN PUCHAR Port,
360 IN UCHAR Value)
361{
363}
364
366VOID
368 IN PULONG Port,
369 IN ULONG Value)
370{
372}
373
375VOID
379{
381}
382
384VOID
388 IN ULONG Count)
389{
390 LONG Synch;
392 InterlockedOr(&Synch, 1);
393}
394
396VOID
400 IN ULONG Count)
401{
402 LONG Synch;
404 InterlockedOr(&Synch, 1);
405}
406
408VOID
412 IN ULONG Count)
413{
414 LONG Synch;
416 InterlockedOr(&Synch, 1);
417}
418
420VOID
422 IN volatile UCHAR *Register,
423 IN UCHAR Value)
424{
425 LONG Synch;
426 *Register = Value;
427 InterlockedOr(&Synch, 1);
428}
429
431VOID
433 IN volatile ULONG *Register,
434 IN ULONG Value)
435{
436 LONG Synch;
437 *Register = Value;
438 InterlockedOr(&Synch, 1);
439}
440
442VOID
444 IN volatile USHORT *Register,
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
463 _In_ PDMA_ADAPTER DmaAdapter,
468{
469 PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
470 AllocateAdapterChannel =
471 *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
472 ASSERT(AllocateAdapterChannel);
473 return AllocateAdapterChannel(DmaAdapter,
477 Context);
478}
479
482NTAPI
484 _In_ PDMA_ADAPTER DmaAdapter,
485 _In_ PMDL Mdl,
487 _In_ PVOID CurrentVa,
490{
491 PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
492 FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
493 ASSERT(FlushAdapterBuffers);
494 return FlushAdapterBuffers(DmaAdapter,
495 Mdl,
497 CurrentVa,
498 Length,
500}
501
503VOID
504NTAPI
506 _In_ PDMA_ADAPTER DmaAdapter)
507{
508 PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
509 FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
510 ASSERT(FreeAdapterChannel);
511 FreeAdapterChannel(DmaAdapter);
512}
513
515VOID
516NTAPI
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
530NTAPI
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,
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
570VOID
571NTAPI
572IoInitializeDriverCreateContext(
574{
577}
578
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)
592NTAPI
593IoRegisterFsRegistrationChangeEx(
596#endif
598#if (NTDDI_VERSION >= NTDDI_WIN2K)
599
601_Acquires_lock_(_Global_cancel_spin_lock_)
602_Requires_lock_not_held_(_Global_cancel_spin_lock_)
606VOID
607NTAPI
610
614NTAPI
616 _Inout_ PIO_REMOVE_LOCK RemoveLock,
621
623_Ret_range_(<=, 0)
626NTAPI
630 _In_ ULONG DriverObjectExtensionSize,
631 _Post_ _At_(*DriverObjectExtension, _When_(return==0,
633 _When_(return == 0, _Outptr_result_bytebuffer_(DriverObjectExtensionSize))
634 PVOID *DriverObjectExtension);
635
638PVOID
639NTAPI
643
647PIRP
648NTAPI
652
655PMDL
656NTAPI
663
668NTAPI
671
673_Ret_range_(<=, 0)
676NTAPI
681 _Out_ PDEVICE_OBJECT *AttachedDevice);
682
687NTAPI
692
697PIRP
698NTAPI
706
711PIRP
712NTAPI
723
726VOID
727NTAPI
729 _In_ PMDL SourceMdl,
733
738PIRP
739NTAPI
748
757#define IoCallDriver IofCallDriver
758
761VOID
764 _In_ PIRP Irp,
766#define IoCompleteRequest IofCompleteRequest
767
771NTAPI
773 _In_ PIRP Irp);
774
778NTAPI
785
788VOID
791 _In_ PIRP Irp,
793
797NTAPI
810
812_Ret_range_(<=, 0)
815NTAPI
818 _In_ ULONG DeviceExtensionSize,
826 _When_(((_In_function_class_(DRIVER_INITIALIZE))
830
834NTAPI
850
854NTAPI
856 _In_ PUNICODE_STRING EventName,
858
862NTAPI
866
870NTAPI
872 _In_ PUNICODE_STRING EventName,
874
878NTAPI
882
886VOID
887NTAPI
891
895NTAPI
898
901VOID
902NTAPI
905
908VOID
909NTAPI
912
916VOID
917NTAPI
919 _In_ PIRP Irp);
920
923VOID
924NTAPI
926 PMDL Mdl);
927
930VOID
931NTAPI
934
937NTAPI
940
944NTAPI
947
950NTAPI
952 _Inout_ PBOOTDISK_INFORMATION BootDiskInformation,
953 _In_ ULONG Size);
954
959NTAPI
963 _Out_
964 _When_(return==0, _At_(AliasSymbolicLinkName->Buffer, __drv_allocatesMem(Mem)))
965 PUNICODE_STRING AliasSymbolicLinkName);
966
969NTAPI
971
976NTAPI
984
988NTAPI
994
1002NTAPI
1009
1014NTAPI
1020
1024PVOID
1025NTAPI
1029
1032PVOID
1033NTAPI
1035
1038NTAPI
1041
1044VOID
1045NTAPI
1051
1054VOID
1055NTAPI
1060
1063VOID
1064NTAPI
1071
1075NTAPI
1080
1083VOID
1084NTAPI
1088
1091VOID
1092NTAPI
1095
1098BOOLEAN
1099NTAPI
1104 MinorVersion!=16 && MinorVersion!=32 &&
1105 MinorVersion!=48, __drv_reportError("MinorVersion must be 0, 0x5, 0x10, 0x20, or 0x30"))
1107
1112NTAPI
1117
1122NTAPI
1128
1133NTAPI
1140
1143CODE_SEG("PAGE")
1146NTAPI
1157
1161NTAPI
1164
1165_Requires_lock_held_(_Global_cancel_spin_lock_)
1166_Releases_lock_(_Global_cancel_spin_lock_)
1170VOID
1171NTAPI
1174
1177VOID
1178NTAPI
1180 _Inout_ PIO_REMOVE_LOCK RemoveLock,
1183
1185VOID
1186NTAPI
1188 _Inout_ PIO_REMOVE_LOCK RemoveLock,
1191
1194VOID
1195NTAPI
1199
1203NTAPI
1207
1211NTAPI
1217
1220VOID
1221NTAPI
1224
1227VOID
1228NTAPI
1232
1237NTAPI
1241
1243VOID
1244NTAPI
1250
1254VOID
1255NTAPI
1259
1262VOID
1263NTAPI
1268
1271VOID
1272NTAPI
1275 _In_ PIRP Irp,
1278
1281VOID
1282NTAPI
1285
1288VOID
1289NTAPI
1292
1295CODE_SEG("PAGE")
1298NTAPI
1301
1304VOID
1305NTAPI
1308
1311VOID
1312NTAPI
1316
1320NTAPI
1322 _In_ GUID *Guid,
1325
1328NTAPI
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
1339NTAPI
1343
1346NTAPI
1350 _In_ BOOLEAN CombineNames,
1351 _Out_ PUNICODE_STRING SuggestedInstanceName);
1352
1355_Ret_range_(<=, 0)
1358NTAPI
1360 _Inout_ _When_(return==0, __drv_aliasesMem) PVOID WnodeEventItem);
1361
1364VOID
1365NTAPI
1367 _In_ PVOID ElEntry);
1368
1370PIRP
1371NTAPI
1373
1377NTAPI
1380
1382VOID
1383NTAPI
1385 _In_opt_ PIRP Irp);
1386
1388$if (_NTDDK_)
1389#if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
1394NTAPI
1396 _In_ PADAPTER_OBJECT AdapterObject,
1401#endif
1402
1403#if !defined(DMA_MACROS_DEFINED)
1404//DECLSPEC_DEPRECATED_DDK
1407NTAPI
1409 _In_ PADAPTER_OBJECT AdapterObject,
1410 _In_ PMDL Mdl,
1412 _In_ PVOID CurrentVa,
1415#endif
1416
1420VOID
1421NTAPI
1423 _In_ PCONTROLLER_OBJECT ControllerObject,
1427
1431NTAPI
1433 _In_ ULONG Size);
1434
1437VOID
1438NTAPI
1440 _In_ PCONTROLLER_OBJECT ControllerObject);
1441
1445VOID
1446NTAPI
1448 _In_ PCONTROLLER_OBJECT ControllerObject);
1449
1453NTAPI
1455
1459NTAPI
1462
1464VOID
1465NTAPI
1469
1473NTAPI
1475
1478PIRP
1479NTAPI
1481 _In_ PIRP Irp,
1483
1486NTAPI
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
1499VOID
1500NTAPI
1502 _In_ PIRP Irp,
1505
1508BOOLEAN
1509NTAPI
1511 _In_ NTSTATUS ErrorStatus,
1514
1517VOID
1518NTAPI
1523
1526VOID
1527NTAPI
1532
1535NTAPI
1539
1544NTAPI
1554
1557NTAPI
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
1569NTAPI
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
1583VOID
1584NTAPI
1586 _In_ PIRP Irp,
1588
1591NTAPI
1597 _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
1599
1602BOOLEAN
1603NTAPI
1605 _In_ BOOLEAN EnableHardErrors);
1606
1608$if (_NTIFS_)
1609
1611VOID
1612NTAPI
1614 _Out_ PKIRQL Irql);
1615
1618NTAPI
1622
1625NTAPI
1629 _Out_ PULONG ErrorOffset);
1630
1633NTAPI
1641
1644NTAPI
1648 _In_ BOOLEAN SetOperation);
1649
1652NTAPI
1656 _In_ BOOLEAN SetOperation);
1657
1660NTAPI
1662 _In_ PFILE_QUOTA_INFORMATION QuotaBuffer,
1663 _In_ ULONG QuotaLength,
1664 _Out_ PULONG ErrorOffset);
1665
1668NTAPI
1672
1675NTAPI
1679
1681BOOLEAN
1682NTAPI
1689
1692NTAPI
1695 _In_ PMDL Mdl,
1699
1702NTAPI
1705
1709NTAPI
1711
1713ULONG
1714NTAPI
1716 _In_ PIRP Irp);
1717
1720NTAPI
1722 _In_ PIRP Irp);
1723
1725PIRP
1726NTAPI
1728
1730BOOLEAN
1731NTAPI
1733 _In_ PIRP Irp);
1734
1736BOOLEAN
1737NTAPI
1740
1742BOOLEAN
1743NTAPI
1745 _In_ PIRP Irp,
1746 _In_ PREPARSE_DATA_BUFFER ReparseBuffer);
1747
1750NTAPI
1757
1760NTAPI
1765 _Out_ PVOID FsInformation,
1767
1769VOID
1770NTAPI
1772 _In_ PIRP Irp);
1773
1775VOID
1776NTAPI
1779
1782NTAPI
1786
1788VOID
1789NTAPI
1791 _In_ KIRQL Irql);
1792
1794VOID
1795NTAPI
1799
1802NTAPI
1808
1810VOID
1811NTAPI
1813 _In_opt_ PIRP Irp);
1814
1817NTAPI
1820 _In_ PMDL Mdl,
1824
1827NTAPI
1830
1832VOID
1833NTAPI
1836
1838VOID
1839NTAPI
1843
1846NTAPI
1849 _In_ BOOLEAN AllowRawMount);
1850
1853NTAPI
1855 _In_ PIRP Irp,
1856 _Out_ PULONG pSessionId);
1858
1859#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
1860
1861$if (_NTDDK_)
1862#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
1863
1865BOOLEAN
1866NTAPI
1869
1872NTAPI
1875 _In_ BOOLEAN Remote);
1876
1877#endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
1879
1880#if (NTDDI_VERSION >= NTDDI_WINXP)
1881
1882$if (_WDMDDK_)
1885NTAPI
1894
1896VOID
1897NTAPI
1902
1904PIRP
1905NTAPI
1909
1911PIRP
1912NTAPI
1916
1918BOOLEAN
1919NTAPI
1922 _In_ PIRP Irp);
1923
1924#define IoForwardAndCatchIrp IoForwardIrpSynchronously
1925
1927VOID
1928NTAPI
1930 _In_ PVOID ElEntry);
1931
1936NTAPI
1939 _In_ PIRP Irp,
1945
1946VOID
1947NTAPI
1950 _In_ BOOLEAN DeferredStartIo,
1951 _In_ BOOLEAN NonCancelable);
1952
1955NTAPI
1957 _In_ PVOID DataBlockObject,
1960
1963NTAPI
1965 _In_ PVOID DataBlockObject,
1971
1974NTAPI
1976 _In_ PVOID DataBlockObject,
1979
1982NTAPI
1984 _In_ LPCGUID DataBlockGuid,
1986 _Out_ PVOID *DataBlockObject);
1987
1990NTAPI
1992 _In_ PVOID DataBlockObject,
1993 _Inout_ ULONG *InOutBufferSize,
1994 _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
1995
1998NTAPI
2000 _In_reads_(ObjectCount) PVOID *DataBlockObjectList,
2002 _Inout_ ULONG *InOutBufferSize,
2003 _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2004
2007NTAPI
2009 _In_ PVOID DataBlockObject,
2011 _Inout_ ULONG *InOutBufferSize,
2012 _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer);
2013
2016NTAPI
2021
2024NTAPI
2026 _In_ PVOID DataBlockObject,
2029 _In_ ULONG ValueBufferSize,
2030 _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2031
2034NTAPI
2036 _In_ PVOID DataBlockObject,
2040 _In_ ULONG ValueBufferSize,
2041 _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer);
2043$if (_NTDDK_)
2053
2063
2074
2077NTAPI
2080 _In_opt_ struct _CREATE_DISK* Disk);
2081
2084NTAPI
2087 _In_ ULONG BytesPerSector,
2089
2093NTAPI
2096 _Out_ struct _DRIVE_LAYOUT_INFORMATION_EX **PartitionBuffer);
2097
2101NTAPI
2105 _In_ struct _SET_PARTITION_INFORMATION_EX *PartitionInfo);
2106
2109NTAPI
2111 _In_ PUNICODE_STRING VolumeNameString);
2112
2115NTAPI
2119
2122NTAPI
2124 _In_ PVOID VolumeDeviceObject,
2125 _Out_ _When_(return==0,
2128
2132NTAPI
2135 _In_reads_(_Inexpressible_(FIELD_OFFSET(DRIVE_LAYOUT_INFORMATION_EX, PartitionEntry[0])))
2136 struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
2137
2140NTAPI
2157
2160NTAPI
2164 _Outptr_ PDEVICE_OBJECT *AttachedToDeviceObject);
2165
2167$if (_NTIFS_)
2168
2171NTAPI
2176
2179NTAPI
2183
2186NTAPI
2189 _Out_writes_bytes_to_opt_(DeviceObjectListSize,(*ActualNumberDeviceObjects)*sizeof(PDEVICE_OBJECT))
2190 PDEVICE_OBJECT *DeviceObjectList,
2191 _In_ ULONG DeviceObjectListSize,
2192 _Out_ PULONG ActualNumberDeviceObjects);
2193
2196NTAPI
2199
2202NTAPI
2205
2208NTAPI
2210 _In_ PDEVICE_OBJECT FileSystemDeviceObject,
2213
2214#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
2215
2216$if (_WDMDDK_)
2217#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
2220NTAPI
2222 _In_ PIRP Irp,
2224#endif
2225
2227$if (_WDMDDK_ || _NTDDK_)
2228#if (NTDDI_VERSION >= NTDDI_WS03)
2230$if (_NTDDK_)
2235 _In_ PIRP Irp);
2236
2238$if (_WDMDDK_)
2241NTAPI
2250
2253NTAPI
2260$if (_WDMDDK_ || _NTDDK_)
2261#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
2263$if (_NTDDK_ || _NTIFS_)
2264#if (NTDDI_VERSION >= NTDDI_WS03SP1)
2266
2267$if (_NTDDK_)
2268BOOLEAN
2269NTAPI
2277$if (_NTIFS_)
2278
2281NTAPI
2284 PDRIVER_OBJECT *DriverObjectList,
2288$if (_NTDDK_ || _NTIFS_)
2289#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
2291
2292#if (NTDDI_VERSION >= NTDDI_VISTA)
2293$if (_WDMDDK_)
2296NTAPI
2297IoGetBootDiskInformationLite(
2298 _Outptr_ PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
2299
2302NTAPI
2309 _In_ PBOOLEAN WritePermission);
2310
2313NTAPI
2316
2318VOID
2319NTAPI
2322
2323LOGICAL
2324NTAPI
2326 _In_ ULONG_PTR RegionStart,
2328
2330VOID
2331NTAPI
2337 _In_ PBOOLEAN WritePermission);
2338
2339ULONG
2340NTAPI
2342
2343VOID
2344NTAPI
2348
2349VOID
2350NTAPI
2353
2356VOID
2357NTAPI
2363
2366NTAPI
2368 _In_ PIRP Irp);
2369
2371NTAPI
2373 _In_ PIRP Irp,
2375
2377NTAPI
2382 _Out_ PVOID *StreamIdentifier);
2383
2384PVOID
2385NTAPI
2389
2391NTAPI
2395
2400NTAPI
2401IoRequestDeviceEjectEx(
2406
2411NTAPI
2412IoSetDevicePropertyData(
2420
2425NTAPI
2426IoGetDevicePropertyData(
2429 _In_ LCID Lcid,
2431 _In_ ULONG Size,
2435
2437$if (_NTDDK_)
2440NTAPI
2441IoUpdateDiskGeometry(
2445
2447NTAPI
2450
2453NTAPI
2470
2472NTAPI
2475 _In_ struct _ECP_LIST *ExtraCreateParameter);
2476
2477VOID
2478NTAPI
2480 _Inout_ PIRP Irp);
2481
2484NTAPI
2486 _In_ PIRP Irp,
2487 _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter);
2488
2489BOOLEAN
2490NTAPI
2493
2495$if (_NTIFS_)
2496
2498VOID
2499NTAPI
2500IoInitializePriorityInfo(
2502{
2503 PriorityInfo->Size = sizeof(IO_PRIORITY_INFO);
2504 PriorityInfo->ThreadPriority = 0xffff;
2505 PriorityInfo->IoPriority = IoPriorityNormal;
2506 PriorityInfo->PagePriority = 0;
2507}
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)
2519NTAPI
2520IoReplacePartitionUnit(
2521 _In_ PDEVICE_OBJECT TargetPdo,
2523 _In_ ULONG Flags);
2524#endif
2525
2527#if (NTDDI_VERSION >= NTDDI_WIN7)
2528
2529$if (_WDMDDK_)
2532NTAPI
2533IoGetAffinityInterrupt(
2536
2538NTAPI
2541 _In_opt_ PVOID ContainerObject,
2544
2546NTAPI
2548 _In_ IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
2550 _In_reads_bytes_opt_(NotificationInformationLength) PVOID NotificationInformation,
2551 _In_ ULONG NotificationInformationLength,
2552 _Out_ PVOID CallbackRegistration);
2553
2554VOID
2555NTAPI
2557 _In_ PVOID CallbackRegistration);
2558
2563NTAPI
2564IoUnregisterPlugPlayNotificationEx(
2566
2571NTAPI
2572IoGetDeviceNumaNode(
2575
2577$if (_NTDDK_)
2579NTAPI
2580IoSetFileObjectIgnoreSharing(
2582
2584$if (_NTIFS_)
2585
2588NTAPI
2589IoRegisterFsRegistrationChangeMountAware(
2593
2596NTAPI
2602#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
2603
2604#if (NTDDI_VERSION >= NTDDI_WIN8)
2605
2606$if (_WDMDDK_)
2611IoSetDeviceInterfacePropertyData(
2614 _In_ LCID Lcid,
2617 _In_ ULONG Size,
2619
2624IoGetDeviceInterfacePropertyData (
2627 _In_ LCID Lcid,
2629 _In_ ULONG Size,
2634$if (_NTDDK_)
2635
2637VOID
2639 _Inout_ PIRP MasterIrp,
2642
2643#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2644
2645$if (_WDMDDK_)
2646#if defined(_WIN64)
2648ULONG
2649NTAPI
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
2665VOID
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
2679VOID
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
2708VOID
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
2744{
2746}
2747
2749VOID
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)
2781BOOLEAN
2782IoIs32bitProcess(
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
2805VOID
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
2839VOID
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
2867VOID
2870{
2872 PIO_STACK_LOCATION nextIrpSp;
2874 nextIrpSp = IoGetNextIrpStackLocation(Irp);
2876 nextIrpSp->Control = 0;
2877}
2878
2881VOID
2882NTAPI
2884 _Out_ PULONG_PTR LowLimit,
2886
2890IoGetRemainingStackSize(VOID)
2891{
2892 ULONG_PTR End, Begin;
2894
2895 IoGetStackLimits(&Begin, &End);
2896 Result = (ULONG_PTR)(&End) - Begin;
2897 return Result;
2898}
2899
2900#if (NTDDI_VERSION >= NTDDI_WS03)
2902VOID
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
#define CODE_SEG(...)
@ ObjectNameInformation
Definition: DriverTester.h:55
unsigned char BOOLEAN
Type
Definition: Type.h:7
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:1301
#define WRITE_REGISTER_USHORT(r, v)
Definition: arm.h:30
#define READ_REGISTER_USHORT(r)
Definition: arm.h:29
#define WRITE_REGISTER_ULONG(r, v)
Definition: arm.h:27
#define READ_REGISTER_ULONG(r)
Definition: arm.h:26
LONG NTSTATUS
Definition: precomp.h:26
BOOL FixErrors
Definition: chkdsk.c:69
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
Definition: batclass.h:188
NTSTATUS FASTCALL IoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
Definition: ntoskrnl.c:69
NTSTATUS FASTCALL IoSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType)
Definition: ntoskrnl.c:46
NTSTATUS FASTCALL IoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
Definition: partition.c:495
#define __drv_aliasesMem
Definition: btrfs_drv.h:203
return
Definition: dirsup.c:529
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
Definition: bufpool.h:45
Definition: File.h:16
Definition: bufpool.h:50
_In_ PVOID Argument2
Definition: classpnp.h:721
LONG ObjectCount
Definition: comsup.c:7
#define _Acquires_lock_(lock)
#define _Requires_lock_held_(lock)
#define _Requires_lock_not_held_(lock)
#define _Releases_lock_(lock)
VOID NTAPI IoDeleteController(IN PCONTROLLER_OBJECT ControllerObject)
Definition: controller.c:114
VOID NTAPI IoFreeController(IN PCONTROLLER_OBJECT ControllerObject)
Definition: controller.c:125
VOID NTAPI IoAllocateController(IN PCONTROLLER_OBJECT ControllerObject, IN PDEVICE_OBJECT DeviceObject, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context)
Definition: controller.c:25
PCONTROLLER_OBJECT NTAPI IoCreateController(IN ULONG Size)
Definition: controller.c:57
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
Definition: csq.h:180
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
Definition: csq.h:196
_In_ PIRP Irp
Definition: csq.h:116
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
Definition: csq.h:117
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:258
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
Definition: csq.h:161
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
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:160
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
Definition: csq.h:217
_Out_ PKIRQL Irql
Definition: csq.h:179
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
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
Definition: csq.h:259
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
Definition: csq.h:135
IO_CSQ Csq
Definition: csqrtns.c:46
VOID NTAPI IoRequestDeviceEject(IN PDEVICE_OBJECT PhysicalDeviceObject)
Definition: devaction.c:2203
ULONG DEVPROPTYPE
Definition: devpropdef.h:24
ULONG * PDEVPROPTYPE
Definition: devpropdef.h:24
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define DEVICE_TYPE
Definition: guid.c:10
ULONG_PTR KAFFINITY
Definition: compat.h:85
PDEVICE_LIST DeviceList
Definition: utils.c:27
static const WCHAR Signature[]
Definition: parser.c:141
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: dpc.c:725
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:712
VOID NTAPI KeInitializeThreadedDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:699
#define ULONG_PTR
Definition: config.h:101
#define __drv_reportError(why)
Definition: driverspecs.h:320
#define _Kernel_clear_do_init_(yesNo)
Definition: driverspecs.h:239
#define __drv_freesMem(kind)
Definition: driverspecs.h:272
#define _Kernel_requires_resource_held_(kind)
Definition: driverspecs.h:245
#define _IRQL_requires_min_(irql)
Definition: driverspecs.h:231
#define _IRQL_uses_cancel_
Definition: driverspecs.h:237
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define _IRQL_restores_
Definition: driverspecs.h:233
#define __drv_allocatesMem(kind)
Definition: driverspecs.h:257
#define _IRQL_saves_
Definition: driverspecs.h:235
#define _Kernel_IoGetDmaAdapter_
Definition: driverspecs.h:243
#define _IRQL_raises_(irql)
Definition: driverspecs.h:228
#define InterlockedExchangePointer(Target, Value)
Definition: dshow.h:45
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
UCHAR KIRQL
Definition: env_spec_w32.h:591
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
#define APC_LEVEL
Definition: env_spec_w32.h:695
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
VOID NTAPI DpcRoutine(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: fbtpnp.c:1298
ULONG MajorVersion
Definition: ros_glue.cpp:4
ULONG MinorVersion
Definition: ros_glue.cpp:5
_In_ IO_PRIORITY_HINT PriorityHint
Definition: fltkernel.h:2681
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
Definition: fltkernel.h:1163
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2654
_Outptr_ PDEVICE_OBJECT * DiskDeviceObject
Definition: fltkernel.h:1672
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1713
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
enum _FSINFOCLASS FS_INFORMATION_CLASS
NTSTATUS NTAPI IoWritePartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN PDRIVE_LAYOUT_INFORMATION_EX DriveLayout)
Definition: fstubex.c:2466
NTSTATUS NTAPI IoSetPartitionInformationEx(IN PDEVICE_OBJECT DeviceObject, IN ULONG PartitionNumber, IN PSET_PARTITION_INFORMATION_EX PartitionInfo)
Definition: fstubex.c:2347
NTSTATUS NTAPI IoReadPartitionTableEx(IN PDEVICE_OBJECT DeviceObject, IN PDRIVE_LAYOUT_INFORMATION_EX *DriveLayout)
Definition: fstubex.c:2279
__in PWDFDEVICE_INIT __in BOOLEAN Exclusive
#define IoFreeMdl
Definition: fxmdl.h:89
#define IoAllocateMdl
Definition: fxmdl.h:88
Status
Definition: gdiplustypes.h:25
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 IoFreeMapRegisters(IN PADAPTER_OBJECT AdapterObject, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters)
Definition: dma.c:114
VOID NTAPI IoFreeAdapterChannel(IN PADAPTER_OBJECT AdapterObject)
Definition: dma.c:103
VOID NTAPI READ_PORT_BUFFER_UCHAR(IN PUCHAR Port, OUT PUCHAR Buffer, IN ULONG Count)
Definition: portio.c:26
CPPORT Port[4]
Definition: headless.c:35
enum _INTERFACE_TYPE * PINTERFACE_TYPE
enum _INTERFACE_TYPE INTERFACE_TYPE
#define _NTIFS_
Definition: ifssupp.h:20
#define InterlockedOr
Definition: interlocked.h:224
PPC_QUAL void __movsd(unsigned long *Destination, const unsigned long *Source, unsigned long Count)
Definition: intrin_ppc.h:333
PPC_QUAL void __outbytestring(unsigned long const Port, const unsigned char *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:653
PPC_QUAL void __outdword(unsigned long const Port, const unsigned long Data)
Definition: intrin_ppc.h:637
PPC_QUAL void __movsw(unsigned short *Destination, const unsigned short *Source, unsigned long Count)
Definition: intrin_ppc.h:328
PPC_QUAL void __outwordstring(unsigned long const Port, const unsigned short *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:662
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
Definition: intrin_ppc.h:539
PPC_QUAL unsigned short __inword(const unsigned long Port)
Definition: intrin_ppc.h:554
PPC_QUAL void __inwordstring(unsigned long Port, unsigned short *Buffer, unsigned long Count)
Definition: intrin_ppc.h:591
PPC_QUAL void __outbyte(unsigned long const Port, const unsigned char Data)
Definition: intrin_ppc.h:605
PPC_QUAL void __inbytestring(unsigned long Port, unsigned char *Buffer, unsigned long Count)
Definition: intrin_ppc.h:584
PPC_QUAL void __outdwordstring(unsigned long const Port, const unsigned long *const Buffer, const unsigned long Count)
Definition: intrin_ppc.h:671
PPC_QUAL void __movsb(unsigned char *Destination, const unsigned char *Source, unsigned long Count)
Definition: intrin_ppc.h:323
PPC_QUAL unsigned long __indword(const unsigned long Port)
Definition: intrin_ppc.h:569
PPC_QUAL void __indwordstring(unsigned long Port, unsigned long *Buffer, unsigned long Count)
Definition: intrin_ppc.h:598
PPC_QUAL void __outword(unsigned long const Port, const unsigned short Data)
Definition: intrin_ppc.h:621
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
VOID NTAPI IoBuildPartialMdl(IN PMDL SourceMdl, IN PMDL TargetMdl, IN PVOID VirtualAddress, IN ULONG Length)
Definition: iomdl.c:96
PCONFIGURATION_INFORMATION NTAPI IoGetConfigurationInformation(VOID)
Returns a pointer to the I/O manager's global configuration information structure.
Definition: iorsrce.c:998
NTSTATUS NTAPI IoInitializeTimer(IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context)
Definition: iotimer.c:92
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:133
VOID NTAPI IoStopTimer(PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:166
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
Definition: iowork.c:40
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
Definition: iowork.c:64
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
Definition: iowork.c:75
IoSetCancelRoutine(Irp, CancelRoutine)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
Definition: irp.cpp:490
DeviceType
Definition: mmdrv.h:42
#define ASSERT(a)
Definition: mode.c:44
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
Definition: pipe.c:75
#define _Outptr_result_bytebuffer_(size)
Definition: ms_sal.h:472
#define _Post_z_
Definition: ms_sal.h:691
#define _Out_opt_
Definition: ms_sal.h:346
#define _Success_(expr)
Definition: ms_sal.h:259
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _In_function_class_(x)
Definition: ms_sal.h:2944
#define _Inout_
Definition: ms_sal.h:378
#define _Post_notnull_
Definition: ms_sal.h:701
#define _Out_writes_bytes_to_(size, count)
Definition: ms_sal.h:360
#define _Ret_maybenull_
Definition: ms_sal.h:529
#define _Outptr_result_maybenull_
Definition: ms_sal.h:428
#define _Inout_updates_bytes_to_opt_(size, count)
Definition: ms_sal.h:403
#define _Outptr_
Definition: ms_sal.h:427
#define _Inout_updates_bytes_opt_(size)
Definition: ms_sal.h:400
#define _Deref_out_range_(lb, ub)
Definition: ms_sal.h:575
#define _Post_
Definition: ms_sal.h:620
#define _Ret_range_(lb, ub)
Definition: ms_sal.h:573
#define _At_(target, annos)
Definition: ms_sal.h:244
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _When_(expr, annos)
Definition: ms_sal.h:254
#define _Out_writes_bytes_to_opt_(size, count)
Definition: ms_sal.h:361
#define _In_
Definition: ms_sal.h:308
#define _In_reads_bytes_opt_(size)
Definition: ms_sal.h:322
#define _In_opt_
Definition: ms_sal.h:309
#define _Reserved_
Definition: ms_sal.h:295
#define _NullNull_terminated_
Definition: ms_sal.h:641
#define _Outptr_result_nullonfailure_
Definition: ms_sal.h:441
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
#define _In_reads_(size)
Definition: ms_sal.h:319
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:159
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
Definition: ndis.h:4643
_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:6017
_Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: iofuncs.h:927
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG ShareAccess
Definition: iofuncs.h:653
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER AllocationSize
Definition: iofuncs.h:651
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
Definition: iofuncs.h:650
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: iofuncs.h:652
_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:658
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: iofuncs.h:649
_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:848
@ InterruptObject
Definition: ketypes.h:428
__kernel_entry _Inout_ _Inout_ PSIZE_T RegionSize
Definition: mmfuncs.h:172
DRIVER_DISPATCH(nfs41_FsdDispatch)
int Count
Definition: noreturn.cpp:7
ULONG ACCESS_MASK
Definition: nt_native.h:40
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
#define FASTCALL
Definition: nt_native.h:50
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:420
#define _NTDDK_
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
#define IoSkipCurrentIrpStackLocation(Irp)
Definition: ntifs_ex.h:421
#define IoCopyCurrentIrpStackLocationToNext(Irp)
Definition: ntifs_ex.h:413
#define NTHALAPI
Definition: ntoskrnl.h:40
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
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
Definition: device.c:966
VOID NTAPI IoStartPacket(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PULONG Key, IN PDRIVER_CANCEL CancelFunction)
Definition: device.c:1876
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1694
NTSTATUS NTAPI IoRegisterLastChanceShutdownNotification(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1663
VOID NTAPI IoDetachDevice(IN PDEVICE_OBJECT TargetDevice)
Definition: device.c:1296
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1251
VOID NTAPI IoStartNextPacketByKey(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable, IN ULONG Key)
Definition: device.c:1817
NTSTATUS NTAPI IoGetDeviceObjectPointer(IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject)
Definition: device.c:1435
PDEVICE_OBJECT NTAPI IoGetAttachedDeviceReference(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1406
VOID NTAPI IoUnregisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
Definition: device.c:1725
VOID NTAPI IoStartNextPacket(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable)
Definition: device.c:1847
NTSTATUS NTAPI IoOpenDeviceInterfaceRegistryKey(IN PUNICODE_STRING SymbolicLinkName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DeviceInterfaceKey)
Definition: deviface.c:241
NTSTATUS NTAPI IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN ULONG Flags, OUT PWSTR *SymbolicLinkList)
Definition: deviface.c:454
NTSTATUS NTAPI IoGetDeviceInterfaceAlias(IN PUNICODE_STRING SymbolicLinkName, IN CONST GUID *AliasInterfaceClassGuid, OUT PUNICODE_STRING AliasSymbolicLinkName)
Definition: deviface.c:303
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
Definition: deviface.c:955
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
Definition: deviface.c:1311
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
Definition: driver.c:1904
VOID NTAPI IoRegisterDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
Definition: driver.c:1797
VOID NTAPI IoRegisterBootDriverReinitialization(IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE ReinitRoutine, IN PVOID Context)
Definition: driver.c:1768
VOID NTAPI IoWriteErrorLogEntry(IN PVOID ElEntry)
Definition: error.c:628
BOOLEAN NTAPI IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled)
Definition: error.c:726
VOID NTAPI IoRaiseHardError(IN PIRP Irp, IN PVPB Vpb, IN PDEVICE_OBJECT RealDeviceObject)
Definition: error.c:664
PVOID NTAPI IoAllocateErrorLogEntry(IN PVOID IoObject, IN UCHAR EntrySize)
Definition: error.c:528
BOOLEAN NTAPI IoRaiseInformationalHardError(IN NTSTATUS ErrorStatus, IN PUNICODE_STRING String, IN PKTHREAD Thread)
Definition: error.c:710
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:3010
NTSTATUS NTAPI IoCheckShareAccess(IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess, IN BOOLEAN Update)
Definition: file.c:3390
VOID NTAPI IoRemoveShareAccess(IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess)
Definition: file.c:3478
PFILE_OBJECT NTAPI IoCreateStreamFileObjectEx(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, OUT PHANDLE FileObjectHandle OPTIONAL)
Definition: file.c:3100
PGENERIC_MAPPING NTAPI IoGetFileObjectGenericMapping(VOID)
Definition: file.c:3267
BOOLEAN NTAPI IoIsFileOriginRemote(IN PFILE_OBJECT FileObject)
Definition: file.c:3278
VOID NTAPI IoUpdateShareAccess(IN PFILE_OBJECT FileObject, OUT PSHARE_ACCESS ShareAccess)
Definition: file.c:3351
PKEVENT NTAPI IoCreateSynchronizationEvent(IN PUNICODE_STRING EventName, IN PHANDLE EventHandle)
Definition: ioevent.c:82
PKEVENT NTAPI IoCreateNotificationEvent(IN PUNICODE_STRING EventName, IN PHANDLE EventHandle)
Definition: ioevent.c:70
NTSTATUS FASTCALL IofCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1258
VOID NTAPI IoInitializeIrp(IN PIRP Irp, IN USHORT PacketSize, IN CCHAR StackSize)
Definition: irp.c:1854
VOID FASTCALL IofCompleteRequest(IN PIRP Irp, IN CCHAR PriorityBoost)
Definition: irp.c:1308
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
PIRP NTAPI IoAllocateIrp(IN CCHAR StackSize, IN BOOLEAN ChargeQuota)
Definition: irp.c:615
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
VOID NTAPI IoReuseIrp(IN OUT PIRP Irp, IN NTSTATUS Status)
Definition: irp.c:1971
BOOLEAN NTAPI IoCancelIrp(IN PIRP Irp)
Definition: irp.c:1101
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
IO_PAGING_PRIORITY FASTCALL IoGetPagingIoPriority(IN PIRP Irp)
Definition: irp.c:1748
VOID NTAPI IoFreeIrp(IN PIRP Irp)
Definition: irp.c:1666
PIRP NTAPI IoMakeAssociatedIrp(IN PIRP Irp, IN CCHAR StackSize)
Definition: irp.c:1925
VOID NTAPI IoDisconnectInterrupt(PKINTERRUPT InterruptObject)
Definition: irq.c:141
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
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
Definition: util.c:150
VOID NTAPI IoGetStackLimits(OUT PULONG_PTR LowLimit, OUT PULONG_PTR HighLimit)
Definition: util.c:78
VOID NTAPI IoSetHardErrorOrVerifyDevice(IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject)
Definition: util.c:316
PDEVICE_OBJECT NTAPI IoGetDeviceToVerify(IN PETHREAD Thread)
Definition: util.c:336
NTSTATUS NTAPI IoValidateDeviceIoControlAccess(IN PIRP Irp, IN ULONG RequiredAccess)
Definition: util.c:292
PVOID NTAPI IoGetInitialStack(VOID)
Definition: util.c:67
BOOLEAN NTAPI IoIsWdmVersionAvailable(IN UCHAR MajorVersion, IN UCHAR MinorVersion)
Definition: util.c:126
VOID NTAPI IoAcquireCancelSpinLock(OUT PKIRQL Irql)
Definition: util.c:56
NTSTATUS NTAPI IoEnumerateRegisteredFiltersList(OUT PDRIVER_OBJECT *DriverObjectList, IN ULONG DriverObjectListSize, OUT PULONG ActualNumberDriverObjects)
Definition: volume.c:821
VOID NTAPI IoAcquireVpbSpinLock(OUT PKIRQL Irql)
Definition: volume.c:1204
NTSTATUS NTAPI IoWMIAllocateInstanceIds(IN GUID *Guid, IN ULONG InstanceCount, OUT ULONG *FirstInstanceId)
Definition: wmi.c:82
NTSTATUS NTAPI IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG Action)
Definition: wmi.c:68
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
#define READ_PORT_UCHAR(p)
Definition: pc98vid.h:22
#define WRITE_PORT_UCHAR(p, d)
Definition: pc98vid.h:21
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
PDMA_ADAPTER NTAPI IoGetDmaAdapter(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters)
Definition: pnpdma.c:23
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:1831
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
Definition: pnpmgr.c:1621
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
Definition: pnpmgr.c:1382
VOID NTAPI IoInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
Definition: pnpmgr.c:1772
VOID NTAPI IoInvalidateDeviceState(IN PDEVICE_OBJECT DeviceObject)
Definition: pnpmgr.c:1848
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
NTSTATUS NTAPI IoUnregisterPlugPlayNotification(_In_ PVOID NotificationEntry)
Definition: pnpnotify.c:479
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
NTSTATUS NTAPI IoReportTargetDeviceChange(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure)
Definition: pnpreport.c:448
NTSTATUS NTAPI IoReportTargetDeviceChangeAsynchronous(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure, IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL, IN PVOID Context OPTIONAL)
Definition: pnpreport.c:498
VOID NTAPI IoInitializeRemoveLockEx(IN PIO_REMOVE_LOCK RemoveLock, IN ULONG AllocateTag, IN ULONG MaxLockedMinutes, IN ULONG HighWatermark, IN ULONG RemlockSize)
Definition: remlock.c:33
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
VOID NTAPI IoReleaseRemoveLockAndWaitEx(IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, IN ULONG RemlockSize)
Definition: remlock.c:243
enum _KINTERRUPT_MODE KINTERRUPT_MODE
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4071
DWORD LCID
Definition: nls.h:13
enum _CONFIGURATION_TYPE * PCONFIGURATION_TYPE
NTKRNLVISTAAPI VOID IoSetMasterIrpStatus(_Inout_ PIRP MasterIrp, _In_ NTSTATUS Status)
Definition: io.c:131
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
Definition: ncftp.h:79
Definition: csq.h:222
Definition: iotypes.h:189
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG_PTR
Definition: typedefs.h:65
uint32_t * PULONG
Definition: typedefs.h:59
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint16_t * PUSHORT
Definition: typedefs.h:56
const char * PCSTR
Definition: typedefs.h:52
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
char CCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1703
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
Definition: wdfdevice.h:3630
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4437
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3739
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3534
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3769
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4439
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1697
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3275
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1699
_In_ WDFDEVICE _In_ ULONG DeviceCharacteristics
Definition: wdfdevice.h:2775
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:458
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_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
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:72
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:118
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
Definition: wdfrequest.h:1016
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
#define FORCEINLINE
Definition: wdftypes.h:67
_In_ ULONG OutBufferSize
Definition: wdfwmi.h:87
_In_ ULONG InBufferSize
Definition: wdfwmi.h:106
_In_ ULONG MethodId
Definition: wdfwmi.h:142
_In_ ULONG DataItemId
Definition: wdfwmi.h:123
#define NTKRNLVISTAAPI
#define _WDMDDK_
Definition: wdm.template.h:26
#define NTKERNELAPI
_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:409
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:64
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:696
_In_ PCALLBACK_FUNCTION CallbackFunction
Definition: exfuncs.h:1034
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
_In_opt_ PUNICODE_STRING DriverClassName
Definition: halfuncs.h:156
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159
_In_ PDRIVER_FS_NOTIFICATION _In_ BOOLEAN SynchronizeWithMounts
Definition: iofuncs.h:2592
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2695
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, _In_opt_ PVOID Context)
Reads and returns Hardware information from the appropriate hardware registry key.
Definition: iorsrce.c:1213
_In_opt_ PDEVICE_OBJECT _In_ ULONG _Outptr_result_nullonfailure_ _At_ * SymbolicLinkList(return==0, __drv_allocatesMem(Mem))) PZZWSTR *SymbolicLinkList
_In_ ULONG EventCategoryFlags
Definition: iofuncs.h:1149
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
Definition: iofuncs.h:690
NTKERNELAPI VOID NTAPI IoSetShareAccess(_In_ ACCESS_MASK DesiredAccess, _In_ ULONG DesiredShareAccess, _Inout_ PFILE_OBJECT FileObject, _Out_ PSHARE_ACCESS ShareAccess)
NTKERNELAPI NTSTATUS NTAPI IoWMIHandleToInstanceName(_In_ PVOID DataBlockObject, _In_ HANDLE FileHandle, _Out_ PUNICODE_STRING InstanceName)
_In_ ULONG InstanceCount
Definition: iofuncs.h:1323
NTKERNELAPI BOOLEAN NTAPI IoIsSystemThread(_In_ PETHREAD Thread)
NTKRNLVISTAAPI NTSTATUS NTAPI IoGetIrpExtraCreateParameter(_In_ PIRP Irp, _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter)
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)
PVOID NTAPI IoGetSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ PVOID Signature)
NTKERNELAPI VOID NTAPI IoUnregisterFsRegistrationChange(_In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine)
BOOLEAN NTAPI IoIsFileObjectIgnoringSharing(_In_ PFILE_OBJECT FileObject)
_In_ PDEVICE_OBJECT SparePdo
Definition: iofuncs.h:2522
_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iofuncs.h:979
NTKERNELAPI NTSTATUS NTAPI IoCheckQuerySetFileInformation(_In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _In_ BOOLEAN SetOperation)
_In_ CONST DEVPROPKEY * PropertyKey
Definition: iofuncs.h:2414
_In_ ULONG _In_ ULONG MaxLockedMinutes
Definition: iofuncs.h:1068
_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:1893
VOID NTAPI IoUnregisterContainerNotification(_In_ PVOID CallbackRegistration)
NTHALAPI ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
Definition: portio.c:70
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
NTKERNELAPI VOID NTAPI IoDisconnectInterruptEx(_In_ PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters)
Definition: irq.c:218
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
Definition: iofuncs.h:2072
NTKERNELAPI VOID NTAPI IoUnregisterFileSystem(_In_ PDEVICE_OBJECT DeviceObject)
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetDeviceAttachmentBaseRef(_In_ PDEVICE_OBJECT DeviceObject)
NTKERNELAPI NTSTATUS NTAPI IoWMISuggestInstanceName(_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, _In_opt_ PUNICODE_STRING SymbolicLinkName, _In_ BOOLEAN CombineNames, _Out_ PUNICODE_STRING SuggestedInstanceName)
$if(_WDMDDK_) NTHALAPI VOID NTAPI READ_PORT_BUFFER_UCHAR(IN PUCHAR Port
Definition: ke.h:1
NTKERNELAPI VOID NTAPI IoReleaseVpbSpinLock(_In_ KIRQL Irql)
NTKERNELAPI NTSTATUS NTAPI IoGetBootDiskInformation(_Inout_ PBOOTDISK_INFORMATION BootDiskInformation, _In_ ULONG Size)
_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:808
_In_ ULONG _In_ ULONG _In_ ULONG PartitionType
Definition: iofuncs.h:2062
_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:845
ULONG NTAPI IoSizeofWorkItem(VOID)
NTHALAPI PHYSICAL_ADDRESS NTAPI IoMapTransfer(_In_ PADAPTER_OBJECT AdapterObject, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _Inout_ PULONG Length, _In_ BOOLEAN WriteToDevice)
NTKRNLVISTAAPI IO_PRIORITY_HINT NTAPI IoGetIoPriorityHint(_In_ PIRP Irp)
Definition: io.c:123
NTSTATUS NTAPI IoAllocateSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ ULONG Length, _In_ PVOID Signature, _Out_ PVOID *StreamIdentifier)
NTKERNELAPI PFILE_OBJECT NTAPI IoCreateStreamFileObjectLite(_In_opt_ PFILE_OBJECT FileObject, _In_opt_ PDEVICE_OBJECT DeviceObject)
FORCEINLINE VOID IoInitializeThreadedDpcRequest(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIO_DPC_ROUTINE DpcRoutine)
Definition: iofuncs.h:2903
ActualNumberDriverObjects _In_ ULONG DriverObjectListSize
Definition: iofuncs.h:2285
NTKERNELAPI NTSTATUS NTAPI IoVerifyVolume(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN AllowRawMount)
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)
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST _In_ BOOLEAN ResourceAssigned
Definition: iofuncs.h:1552
NTKERNELAPI NTSTATUS NTAPI IoWMIQueryAllDataMultiple(_In_reads_(ObjectCount) PVOID *DataBlockObjectList, _In_ ULONG ObjectCount, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
VOID NTAPI IoInitializeWorkItem(_In_ PVOID IoObject, _Out_ PIO_WORKITEM IoWorkItem)
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)
NTKERNELAPI PFILE_OBJECT NTAPI IoCreateStreamFileObject(_In_opt_ PFILE_OBJECT FileObject, _In_opt_ PDEVICE_OBJECT DeviceObject)
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
_In_ PDRIVER_REINITIALIZE DriverReinitializationRoutine
Definition: iofuncs.h:1521
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iofuncs.h:800
_In_ struct _DISK_GEOMETRY_EX * OldDiskGeometry
Definition: iofuncs.h:2443
NTKERNELAPI NTSTATUS NTAPI IoCheckDesiredAccess(_Inout_ PACCESS_MASK DesiredAccess, _In_ ACCESS_MASK GrantedAccess)
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)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
_In_ USHORT _In_ CCHAR StackSize
Definition: iofuncs.h:1059
_In_ CONST DEVPROPKEY _In_ LCID Lcid
Definition: iofuncs.h:2415
_In_ PIO_CSQ_INSERT_IRP CsqInsertIrp
Definition: iofuncs.h:1888
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)
_In_opt_ PDRIVER_CANCEL CancelRoutine
Definition: iofuncs.h:2744
NTKERNELAPI PEPROCESS NTAPI IoGetCurrentProcess(VOID)
Definition: util.c:139
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)
NTKERNELAPI NTSTATUS NTAPI IoAttachDeviceToDeviceStackSafe(_In_ PDEVICE_OBJECT SourceDevice, _In_ PDEVICE_OBJECT TargetDevice, _Outptr_ PDEVICE_OBJECT *AttachedToDeviceObject)
NTKERNELAPI NTSTATUS NTAPI IoSetInformation(_In_ PFILE_OBJECT FileObject, _In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _In_ PVOID FileInformation)
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)
FORCEINLINE VOID IoSetNextIrpStackLocation(_Inout_ PIRP Irp)
Definition: iofuncs.h:2680
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(_In_ PFILE_OBJECT FileObject)
NTKERNELAPI VOID NTAPI IoReleaseRemoveLockEx(_Inout_ PIO_REMOVE_LOCK RemoveLock, _In_opt_ PVOID Tag, _In_ ULONG RemlockSize)
_In_ PDEVICE_OBJECT _In_ ULONG _In_ PDRIVER_CONTROL ExecutionRoutine
Definition: iofuncs.h:1399
_In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG _In_opt_ PCM_RESOURCE_LIST _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements
Definition: iofuncs.h:1551
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_ULONG(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
Definition: portio.c:97
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN InvokeOnError
Definition: iofuncs.h:1943
_In_ ULONG _Inout_ PFILE_OBJECT _Inout_ PSHARE_ACCESS _In_ BOOLEAN Update
Definition: iofuncs.h:784
_In_ CONST GUID * AliasInterfaceClassGuid
Definition: iofuncs.h:962
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_USHORT(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
Definition: portio.c:87
_In_opt_ PDEVICE_OBJECT _Out_opt_ PHANDLE FileObjectHandle
Definition: iofuncs.h:2175
NTKERNELAPI NTSTATUS NTAPI IoWMISetNotificationCallback(_Inout_ PVOID Object, _In_ WMI_NOTIFICATION_CALLBACK Callback, _In_opt_ PVOID Context)
VOID NTAPI IoClearIrpExtraCreateParameter(_Inout_ PIRP Irp)
_Out_ PULONG_PTR HighLimit
Definition: iofuncs.h:2885
NTKERNELAPI NTSTATUS NTAPI IoGetRequestorSessionId(_In_ PIRP Irp, _Out_ PULONG pSessionId)
NTKERNELAPI VOID NTAPI IoCancelFileOpen(_In_ PDEVICE_OBJECT DeviceObject, _In_ PFILE_OBJECT FileObject)
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)
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
_In_ INTERFACE_TYPE LegacyBusType
Definition: iofuncs.h:1547
NTKERNELAPI BOOLEAN NTAPI IoIsValidNameGraftingBuffer(_In_ PIRP Irp, _In_ PREPARSE_DATA_BUFFER ReparseBuffer)
_In_ PDEVICE_OBJECT _In_ ULONG NumberOfMapRegisters
Definition: iofuncs.h:1398
NTKERNELAPI NTSTATUS NTAPI IoQueryFileDosDeviceName(_In_ PFILE_OBJECT FileObject, _Out_ POBJECT_NAME_INFORMATION *ObjectNameInformation)
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
Definition: iofuncs.h:2273
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:806
NTKERNELAPI NTSTATUS NTAPI IoWMIDeviceObjectToInstanceName(_In_ PVOID DataBlockObject, _In_ PDEVICE_OBJECT DeviceObject, _Out_ PUNICODE_STRING InstanceName)
NTKERNELAPI NTSTATUS NTAPI IoWMIQueryAllData(_In_ PVOID DataBlockObject, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
NTKERNELAPI NTSTATUS NTAPI IoCheckQuotaBufferValidity(_In_ PFILE_QUOTA_INFORMATION QuotaBuffer, _In_ ULONG QuotaLength, _Out_ PULONG ErrorOffset)
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)
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: iofuncs.h:1049
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
Definition: iofuncs.h:805
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:691
_In_ ACCESS_MASK _Out_ PHANDLE DeviceInterfaceKey
Definition: iofuncs.h:1116
#define IoWMIDeviceObjectToProviderId(DeviceObject)
$endif(_WDMDDK_) $if(_NTDDK_) FORCEINLINE VOID NTAPI IoInitializeDriverCreateContext(PIO_DRIVER_CREATE_CONTEXT DriverContext)
Definition: iofuncs.h:552
NTKERNELAPI NTSTATUS NTAPI IoSynchronousPageWrite(_In_ PFILE_OBJECT FileObject, _In_ PMDL Mdl, _In_ PLARGE_INTEGER FileOffset, _In_ PKEVENT Event, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
_Out_ PHANDLE EventHandle
Definition: iofuncs.h:857
NTSTATUS NTAPI IoFreeSfioStreamIdentifier(_In_ PFILE_OBJECT FileObject, _In_ PVOID Signature)
_In_ USHORT PacketSize
Definition: iofuncs.h:1058
FORCEINLINE VOID IoInitializeDpcRequest(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIO_DPC_ROUTINE DpcRoutine)
Definition: iofuncs.h:2840
NTKERNELAPI PEPROCESS NTAPI IoGetRequestorProcess(_In_ PIRP Irp)
NTHALAPI VOID NTAPI WRITE_PORT_USHORT(IN PUSHORT Port, IN USHORT Value)
Definition: portio.c:115
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetBaseFileSystemDeviceObject(_In_ PFILE_OBJECT FileObject)
_In_ ULONG DesiredShareAccess
Definition: iofuncs.h:781
NTKERNELAPI NTSTATUS NTAPI IoPageRead(_In_ PFILE_OBJECT FileObject, _In_ PMDL Mdl, _In_ PLARGE_INTEGER Offset, _In_ PKEVENT Event, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2275
_In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: iofuncs.h:1548
FORCEINLINE VOID IoRequestDpc(_Inout_ PDEVICE_OBJECT DeviceObject, _In_opt_ PIRP Irp, _In_opt_ __drv_aliasesMem PVOID Context)
Definition: iofuncs.h:2750
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)
Definition: iorsrce.c:1134
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)
Reports hardware resources in the \Registry\Machine\Hardware\ResourceMap tree, so that a subsequently...
Definition: iorsrce.c:1041
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _Inout_opt_ PVOID _In_opt_ ULONG _In_opt_ PLARGE_INTEGER StartingOffset
Definition: iofuncs.h:704
NTKERNELAPI NTSTATUS NTAPI IoAttachDeviceByPointer(_In_ PDEVICE_OBJECT SourceDevice, _In_ PDEVICE_OBJECT TargetDevice)
NTKERNELAPI NTSTATUS NTAPI IoCheckEaBufferValidity(_In_ PFILE_FULL_EA_INFORMATION EaBuffer, _In_ ULONG EaLength, _Out_ PULONG ErrorOffset)
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2274
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iofuncs.h:1940
NTKERNELAPI NTSTATUS NTAPI IoCreateDisk(_In_ PDEVICE_OBJECT DeviceObject, _In_opt_ struct _CREATE_DISK *Disk)
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine
Definition: iofuncs.h:1152
_In_ BOOLEAN Cancelable
Definition: iofuncs.h:1258
NTHALAPI VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
Definition: portio.c:123
_In_ UCHAR EntrySize
Definition: iofuncs.h:642
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
NTKERNELAPI NTSTATUS NTAPI IoWMISetSingleInstance(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _In_ ULONG Version, _In_ ULONG ValueBufferSize, _In_reads_bytes_(ValueBufferSize) PVOID ValueBuffer)
PTXN_PARAMETER_BLOCK NTAPI IoGetTransactionParameterBlock(_In_ PFILE_OBJECT FileObject)
NTSTATUS NTAPI IoSetIoPriorityHint(_In_ PIRP Irp, _In_ IO_PRIORITY_HINT PriorityHint)
NTKERNELAPI NTSTATUS NTAPI IoVolumeDeviceToDosName(_In_ PVOID VolumeDeviceObject, _Out_ _When_(return==0, _At_(DosName->Buffer, __drv_allocatesMem(Mem))) PUNICODE_STRING DosName)
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp
Definition: iofuncs.h:1890
_In_ ULONG _Out_ ULONG * FirstInstanceId
Definition: iofuncs.h:1324
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
Definition: iofuncs.h:2051
_In_ CONST GUID * InterfaceClassGuid
Definition: iofuncs.h:1136
NTKERNELAPI NTSTATUS NTAPI IoRegisterFsRegistrationChange(_In_ PDRIVER_OBJECT DriverObject, _In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine)
FORCEINLINE VOID IoMarkIrpPending(_Inout_ PIRP Irp)
Definition: iofuncs.h:2806
NTKERNELAPI ULONG NTAPI IoGetRequestorProcessId(_In_ PIRP Irp)
NTKERNELAPI NTSTATUS NTAPI IoConnectInterruptEx(_Inout_ PIO_CONNECT_INTERRUPT_PARAMETERS Parameters)
Definition: irq.c:195
_In_ ULONG _In_ BOOLEAN _In_ BOOLEAN _Inout_opt_ PIRP Irp
Definition: iofuncs.h:662
NTKERNELAPI NTSTATUS NTAPI IoQueryFileInformation(_In_ PFILE_OBJECT FileObject, _In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ ULONG Length, _Out_ PVOID FileInformation, _Out_ PULONG ReturnedLength)
_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:809
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
_In_ ULONG _In_ ULONG SectorsPerTrack
Definition: iofuncs.h:2071
_In_opt_ PVOID _In_ PCSTR _In_ ULONG _In_ ULONG RemlockSize
Definition: iofuncs.h:620
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)
_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
NTSTATUS NTAPI IoSetIrpExtraCreateParameter(_Inout_ PIRP Irp, _In_ struct _ECP_LIST *ExtraCreateParameter)
_Out_ PUSHORT NodeNumber
Definition: iofuncs.h:2574
_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:1891
_In_ PIO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE _In_opt_ __drv_aliasesMem PVOID Context
Definition: iofuncs.h:1050
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)
NTKERNELAPI VOID NTAPI IoSetDeviceToVerify(_In_ PETHREAD Thread, _In_opt_ PDEVICE_OBJECT DeviceObject)
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
NTKERNELAPI BOOLEAN NTAPI IoIsOperationSynchronous(_In_ PIRP Irp)
NTKERNELAPI VOID NTAPI IoSetShareAccessEx(_In_ ACCESS_MASK DesiredAccess, _In_ ULONG DesiredShareAccess, _Inout_ PFILE_OBJECT FileObject, _Out_ PSHARE_ACCESS ShareAccess, _In_ PBOOLEAN WritePermission)
NTKERNELAPI NTSTATUS NTAPI IoReadDiskSignature(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG BytesPerSector, _Out_ PDISK_SIGNATURE Signature)
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)
NTKERNELAPI VOID NTAPI IoRegisterFileSystem(_In_ __drv_aliasesMem PDEVICE_OBJECT DeviceObject)
_In_ PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
Definition: iofuncs.h:595
NTHALAPI VOID NTAPI READ_PORT_BUFFER_USHORT(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
_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:848
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN InvokeOnCancel
Definition: iofuncs.h:1944
NTKERNELAPI BOOLEAN NTAPI IoForwardIrpSynchronously(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
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
_Inout_ PMDL TargetMdl
Definition: iofuncs.h:730
NTKERNELAPI PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
NTKERNELAPI NTSTATUS NTAPI IoGetDiskDeviceObject(_In_ PDEVICE_OBJECT FileSystemDeviceObject, _Out_ PDEVICE_OBJECT *DiskDeviceObject)
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetLowerDeviceObject(_In_ PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoSetStartIoAttributes(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN DeferredStartIo, _In_ BOOLEAN NonCancelable)
__drv_aliasesMem _In_ PVOID ClientIdentificationAddress
Definition: iofuncs.h:1028
_In_opt_ PVPB Vpb
Definition: iofuncs.h:1503
_In_ struct _DISK_GEOMETRY_EX _In_ struct _DISK_GEOMETRY_EX * NewDiskGeometry
Definition: iofuncs.h:2444
LOGICAL NTAPI IoWithinStackLimits(_In_ ULONG_PTR RegionStart, _In_ SIZE_T RegionSize)
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID _In_ ULONG _In_ BOOLEAN InternalDeviceIoControl
Definition: iofuncs.h:720
_In_ PIO_WORKITEM_ROUTINE WorkerRoutine
Definition: iofuncs.h:1048
NTKERNELAPI NTSTATUS NTAPI IoWMIOpenBlock(_In_ LPCGUID DataBlockGuid, _In_ ULONG DesiredAccess, _Out_ PVOID *DataBlockObject)
Definition: wmi.c:140
NTKERNELAPI NTSTATUS NTAPI IoQueryVolumeInformation(_In_ PFILE_OBJECT FileObject, _In_ FS_INFORMATION_CLASS FsInformationClass, _In_ ULONG Length, _Out_ PVOID FsInformation, _Out_ PULONG ReturnedLength)
NTKERNELAPI PIRP NTAPI IoCsqRemoveNextIrp(_Inout_ PIO_CSQ Csq, _In_opt_ PVOID PeekContext)
IoCsqRemoveNextIrp - Removes the next IRP from the queue.
Definition: csq.c:398
_In_ ULONG _In_ ACCESS_MASK _Out_ PHANDLE DevInstRegKey
Definition: iofuncs.h:1127
_In_ PIRP _In_opt_ PULONG _In_opt_ PDRIVER_CANCEL CancelFunction
Definition: iofuncs.h:1277
_In_ ULONG _In_ ULONG _In_ ULONG HighWatermark
Definition: iofuncs.h:1069
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG Disposition
Definition: iofuncs.h:843
NTKERNELAPI NTSTATUS NTAPI IoSetSystemPartition(_In_ PUNICODE_STRING VolumeNameString)
NTKERNELAPI PIRP NTAPI IoCsqRemoveIrp(_Inout_ PIO_CSQ Csq, _Inout_ PIO_CSQ_IRP_CONTEXT Context)
Remove anb IRP from the queue.
Definition: csq.c:326
_In_ ULONG SectorSize
Definition: iofuncs.h:2050
_In_opt_ PUNICODE_STRING _In_opt_ PKTHREAD Thread
Definition: iofuncs.h:1513
NTSTATUS NTAPI IoGetContainerInformation(_In_ IO_CONTAINER_INFORMATION_CLASS InformationClass, _In_opt_ PVOID ContainerObject, _Inout_updates_bytes_opt_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength)
NTKERNELAPI NTSTATUS NTAPI IoWMIQuerySingleInstance(_In_ PVOID DataBlockObject, _In_ PUNICODE_STRING InstanceName, _Inout_ ULONG *InOutBufferSize, _Out_writes_bytes_opt_(*InOutBufferSize) PVOID OutBuffer)
NTHALAPI USHORT NTAPI READ_PORT_USHORT(IN PUSHORT Port)
Definition: portio.c:63
_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:847
NTHALAPI VOID NTAPI READ_PORT_BUFFER_ULONG(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
_In_ ULONG _In_ struct _SET_PARTITION_INFORMATION_EX * PartitionInfo
Definition: iofuncs.h:2105
_In_ ULONG _In_opt_ PVOID EventCategoryData
Definition: iofuncs.h:1150
NTKERNELAPI PEPROCESS NTAPI IoThreadToProcess(_In_ PETHREAD Thread)
NTKERNELAPI NTSTATUS NTAPI IoCheckQuerySetVolumeInformation(_In_ FS_INFORMATION_CLASS FsInformationClass, _In_ ULONG Length, _In_ BOOLEAN SetOperation)
_Must_inspect_result_ _In_ BOOLEAN ChargeQuota
Definition: iofuncs.h:651
_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:807
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)
VOID NTAPI IoUninitializeWorkItem(_Inout_ PIO_WORKITEM IoWorkItem)
ActualNumberDriverObjects _In_ ULONG _Out_ PULONG ActualNumberDriverObjects
Definition: iofuncs.h:2286
NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_UCHAR(IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count)
Definition: portio.c:77
NTKERNELAPI NTSTATUS NTAPI IoReplaceFileObjectName(_In_ PFILE_OBJECT FileObject, _In_reads_bytes_(FileNameLength) PWSTR NewFileName, _In_ USHORT FileNameLength)
_In_ ULONG DevInstKeyType
Definition: iofuncs.h:1125
NTKERNELAPI VOID NTAPI IoQueueThreadIrp(_In_ PIRP Irp)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
Definition: iofuncs.h:801
_Must_inspect_result_ NTKERNELAPI NTSTATUS NTAPI IoWMIWriteEvent(_Inout_ _When_(return==0, __drv_aliasesMem) PVOID WnodeEventItem)
NTKERNELAPI NTSTATUS NTAPI IoVerifyPartitionTable(_In_ PDEVICE_OBJECT DeviceObject, _In_ BOOLEAN FixErrors)
_In_ PIO_TIMER_ROUTINE TimerRoutine
Definition: iofuncs.h:1078
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp
Definition: iofuncs.h:1889
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
Definition: iofuncs.h:1942
NTKERNELAPI PDEVICE_OBJECT NTAPI IoGetAttachedDevice(IN PDEVICE_OBJECT DeviceObject)
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
Definition: iofuncs.h:2052
_In_ ULONG RequiredAccess
Definition: iofuncs.h:2223
NTKERNELAPI VOID NTAPI IoSetTopLevelIrp(_In_opt_ PIRP Irp)
_In_ ULONG _In_ ULONG PartitionNumber
Definition: iofuncs.h:2061
_In_ ULONG _In_ BOOLEAN SecondaryBuffer
Definition: iofuncs.h:660
_In_ PVOID NotificationStructure
Definition: iofuncs.h:1206
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 NTSTATUS NTAPI IoSetFileOrigin(_In_ PFILE_OBJECT FileObject, _In_ BOOLEAN Remote)
_In_opt_ PVPB _In_ PDEVICE_OBJECT RealDeviceObject
Definition: iofuncs.h:1504
NTKERNELAPI VOID NTAPI IoFreeErrorLogEntry(_In_ PVOID ElEntry)
_Out_ PGROUP_AFFINITY GroupAffinity
Definition: iofuncs.h:2535
irpSp
Definition: iofuncs.h:2719
_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:1892
_In_ ULONG AllocateTag
Definition: iofuncs.h:1067
#define SL_PENDING_RETURNED
Definition: iotypes.h:3325
VOID(NTAPI * PFREE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2343
enum _IO_PAGING_PRIORITY IO_PAGING_PRIORITY
struct _IO_DRIVER_CREATE_CONTEXT IO_DRIVER_CREATE_CONTEXT
enum _IO_NOTIFICATION_EVENT_CATEGORY IO_NOTIFICATION_EVENT_CATEGORY
_In_ PVOID IoObject
Definition: iotypes.h:467
VOID(NTAPI * PFREE_MAP_REGISTERS)(_In_ PDMA_ADAPTER DmaAdapter, PVOID MapRegisterBase, ULONG NumberOfMapRegisters)
Definition: iotypes.h:2347
struct _IO_PRIORITY_INFO IO_PRIORITY_INFO
DEVICE_CHANGE_COMPLETE_CALLBACK * PDEVICE_CHANGE_COMPLETE_CALLBACK
Definition: iotypes.h:1254
#define __multiString_type
Definition: iotypes.h:1191
_Inout_ struct _IRP _In_ PVOID MapRegisterBase
Definition: iotypes.h:213
_In_opt_ PVOID _In_ PIO_WORKITEM IoWorkItem
Definition: iotypes.h:521
enum _IO_CONTAINER_INFORMATION_CLASS IO_CONTAINER_INFORMATION_CLASS
#define __string_type
Definition: iotypes.h:1189
VOID(NTAPI * PDRIVER_REINITIALIZE)(_In_ struct _DRIVER_OBJECT *DriverObject, _In_opt_ PVOID Context, _In_ ULONG Count)
Definition: iotypes.h:4455
@ IoPriorityNormal
Definition: iotypes.h:1233
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
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2835
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
DRIVER_CANCEL * PDRIVER_CANCEL
Definition: iotypes.h:2759
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194
VOID(NTAPI * PIO_DEVICE_EJECT_CALLBACK)(_In_ NTSTATUS Status, _Inout_opt_ PVOID Context)
Definition: iotypes.h:859
#define SL_INVOKE_ON_ERROR
Definition: iotypes.h:3329
IO_DPC_ROUTINE * PIO_DPC_ROUTINE
Definition: iotypes.h:2847
DRIVER_CONTROL * PDRIVER_CONTROL
Definition: iotypes.h:215
IO_WORKITEM_ROUTINE_EX * PIO_WORKITEM_ROUTINE_EX
Definition: iotypes.h:522
* PFILE_OBJECT
Definition: iotypes.h:1998
#define SL_INVOKE_ON_CANCEL
Definition: iotypes.h:3327
enum _IO_CONTAINER_NOTIFICATION_CLASS IO_CONTAINER_NOTIFICATION_CLASS
DRIVER_FS_NOTIFICATION * PDRIVER_FS_NOTIFICATION
Definition: iotypes.h:7361
enum _IO_PRIORITY_HINT IO_PRIORITY_HINT
IO_TIMER_ROUTINE * PIO_TIMER_ROUTINE
Definition: iotypes.h:2863
enum _CREATE_FILE_TYPE CREATE_FILE_TYPE
DRIVER_NOTIFICATION_CALLBACK_ROUTINE * PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
Definition: iotypes.h:1247
#define SL_INVOKE_ON_SUCCESS
Definition: iotypes.h:3328
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
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
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
NTSTATUS(NTAPI * PIO_CONTAINER_NOTIFICATION_FUNCTION)(VOID)
Definition: iotypes.h:461
FWMI_NOTIFICATION_CALLBACK * WMI_NOTIFICATION_CALLBACK
Definition: iotypes.h:3484
IO_WORKITEM_ROUTINE * PIO_WORKITEM_ROUTINE
Definition: iotypes.h:515
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:512
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
Definition: ketypes.h:690
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1269
_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:20
unsigned char UCHAR
Definition: xmlstorage.h:181