3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the I/O Manager.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
33 IN PUNICODE_STRING EntryName
,
34 IN PUNICODE_STRING EntryValue
41 OUT PIO_STATUS_BLOCK IoStatusBlock
48 OUT PHANDLE FileHandle
,
49 IN ACCESS_MASK DesiredAccess
,
50 IN POBJECT_ATTRIBUTES ObjectAttributes
,
51 OUT PIO_STATUS_BLOCK IoStatusBlock
,
52 IN PLARGE_INTEGER AllocationSize OPTIONAL
,
53 IN ULONG FileAttributes
,
55 IN ULONG CreateDisposition
,
56 IN ULONG CreateOptions
,
57 IN PVOID EaBuffer OPTIONAL
,
64 OUT PHANDLE IoCompletionHandle
,
65 IN ACCESS_MASK DesiredAccess
,
66 IN POBJECT_ATTRIBUTES ObjectAttributes
,
67 IN ULONG NumberOfConcurrentThreads
73 OUT PHANDLE MailSlotFileHandle
,
74 IN ACCESS_MASK DesiredAccess
,
75 IN POBJECT_ATTRIBUTES ObjectAttributes
,
76 OUT PIO_STATUS_BLOCK IoStatusBlock
,
77 IN ULONG FileAttributes
,
79 IN ULONG MaxMessageSize
,
80 IN PLARGE_INTEGER TimeOut
85 NtCreateNamedPipeFile(
86 OUT PHANDLE NamedPipeFileHandle
,
87 IN ACCESS_MASK DesiredAccess
,
88 IN POBJECT_ATTRIBUTES ObjectAttributes
,
89 OUT PIO_STATUS_BLOCK IoStatusBlock
,
91 IN ULONG CreateDisposition
,
92 IN ULONG CreateOptions
,
93 IN ULONG WriteModeMessage
,
94 IN ULONG ReadModeMessage
,
96 IN ULONG MaxInstances
,
97 IN ULONG InBufferSize
,
98 IN ULONG OutBufferSize
,
99 IN PLARGE_INTEGER DefaultTimeOut
105 IN PUNICODE_STRING EntryName
,
106 IN PUNICODE_STRING EntryValue
112 IN POBJECT_ATTRIBUTES ObjectAttributes
118 NtDeviceIoControlFile(
119 IN HANDLE DeviceHandle
,
120 IN HANDLE Event OPTIONAL
,
121 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
122 IN PVOID UserApcContext OPTIONAL
,
123 OUT PIO_STATUS_BLOCK IoStatusBlock
,
124 IN ULONG IoControlCode
,
125 IN PVOID InputBuffer
,
126 IN ULONG InputBufferSize
,
127 OUT PVOID OutputBuffer
,
128 IN ULONG OutputBufferSize
133 NtEnumerateBootEntries(
141 IN HANDLE FileHandle
,
142 OUT PIO_STATUS_BLOCK IoStatusBlock
147 NtFlushWriteBuffer(VOID
);
153 IN HANDLE DeviceHandle
,
154 IN HANDLE Event OPTIONAL
,
155 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
156 IN PVOID ApcContext OPTIONAL
,
157 OUT PIO_STATUS_BLOCK IoStatusBlock
,
158 IN ULONG IoControlCode
,
159 IN PVOID InputBuffer
,
160 IN ULONG InputBufferSize
,
161 OUT PVOID OutputBuffer
,
162 IN ULONG OutputBufferSize
168 IN PUNICODE_STRING DriverServiceName
175 IN HANDLE FileHandle
,
176 IN HANDLE Event OPTIONAL
,
177 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
178 IN PVOID ApcContext OPTIONAL
,
179 OUT PIO_STATUS_BLOCK IoStatusBlock
,
180 IN PLARGE_INTEGER ByteOffset
,
181 IN PLARGE_INTEGER Length
,
183 IN BOOLEAN FailImmediatedly
,
184 IN BOOLEAN ExclusiveLock
189 NtNotifyChangeDirectoryFile(
190 IN HANDLE FileHandle
,
191 IN HANDLE Event OPTIONAL
,
192 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
193 IN PVOID ApcContext OPTIONAL
,
194 OUT PIO_STATUS_BLOCK IoStatusBlock
,
197 IN ULONG CompletionFilter
,
205 OUT PHANDLE FileHandle
,
206 IN ACCESS_MASK DesiredAccess
,
207 IN POBJECT_ATTRIBUTES ObjectAttributes
,
208 OUT PIO_STATUS_BLOCK IoStatusBlock
,
209 IN ULONG ShareAccess
,
216 OUT PHANDLE CompetionPort
,
217 IN ACCESS_MASK DesiredAccess
,
218 IN POBJECT_ATTRIBUTES ObjectAttributes
223 NtQueryAttributesFile(
224 IN POBJECT_ATTRIBUTES ObjectAttributes
,
225 OUT PFILE_BASIC_INFORMATION FileInformation
230 NtQueryBootEntryOrder(
245 NtQueryDirectoryFile(
246 IN HANDLE FileHandle
,
247 IN HANDLE Event OPTIONAL
,
248 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
249 IN PVOID ApcContext OPTIONAL
,
250 OUT PIO_STATUS_BLOCK IoStatusBlock
,
251 OUT PVOID FileInformation
,
253 IN FILE_INFORMATION_CLASS FileInformationClass
,
254 IN BOOLEAN ReturnSingleEntry
,
255 IN PUNICODE_STRING FileName OPTIONAL
,
256 IN BOOLEAN RestartScan
262 IN HANDLE FileHandle
,
263 OUT PIO_STATUS_BLOCK IoStatusBlock
,
266 IN BOOLEAN ReturnSingleEntry
,
267 IN PVOID EaList OPTIONAL
,
268 IN ULONG EaListLength
,
269 IN PULONG EaIndex OPTIONAL
,
270 IN BOOLEAN RestartScan
275 NtQueryFullAttributesFile(
276 IN POBJECT_ATTRIBUTES ObjectAttributes
,
277 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
283 NtQueryInformationFile(
284 IN HANDLE FileHandle
,
285 OUT PIO_STATUS_BLOCK IoStatusBlock
,
286 OUT PVOID FileInformation
,
288 IN FILE_INFORMATION_CLASS FileInformationClass
294 IN HANDLE IoCompletionHandle
,
295 IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass
,
296 OUT PVOID IoCompletionInformation
,
297 IN ULONG IoCompletionInformationLength
,
298 OUT PULONG ResultLength OPTIONAL
304 NtQueryQuotaInformationFile(
305 IN HANDLE FileHandle
,
306 OUT PIO_STATUS_BLOCK IoStatusBlock
,
309 IN BOOLEAN ReturnSingleEntry
,
310 IN PVOID SidList OPTIONAL
,
311 IN ULONG SidListLength
,
312 IN PSID StartSid OPTIONAL
,
313 IN BOOLEAN RestartScan
319 NtQueryVolumeInformationFile(
320 IN HANDLE FileHandle
,
321 OUT PIO_STATUS_BLOCK IoStatusBlock
,
322 OUT PVOID FsInformation
,
324 IN FS_INFORMATION_CLASS FsInformationClass
331 IN HANDLE FileHandle
,
332 IN HANDLE Event OPTIONAL
,
333 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
334 IN PVOID UserApcContext OPTIONAL
,
335 OUT PIO_STATUS_BLOCK IoStatusBlock
,
337 IN ULONG BufferLength
,
338 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
339 IN PULONG Key OPTIONAL
345 IN HANDLE FileHandle
,
346 IN HANDLE Event OPTIONAL
,
347 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
348 IN PVOID UserApcContext OPTIONAL
,
349 OUT PIO_STATUS_BLOCK UserIoStatusBlock
,
350 IN FILE_SEGMENT_ELEMENT BufferDescription
[],
351 IN ULONG BufferLength
,
352 IN PLARGE_INTEGER ByteOffset
,
353 IN PULONG Key OPTIONAL
358 NtRemoveIoCompletion(
359 IN HANDLE IoCompletionHandle
,
360 OUT PVOID
*CompletionKey
,
361 OUT PVOID
*CompletionContext
,
362 OUT PIO_STATUS_BLOCK IoStatusBlock
,
363 IN PLARGE_INTEGER Timeout OPTIONAL
383 IN HANDLE FileHandle
,
384 IN PIO_STATUS_BLOCK IoStatusBlock
,
392 NtSetInformationFile(
393 IN HANDLE FileHandle
,
394 IN PIO_STATUS_BLOCK IoStatusBlock
,
395 IN PVOID FileInformation
,
397 IN FILE_INFORMATION_CLASS FileInformationClass
403 IN HANDLE IoCompletionPortHandle
,
404 IN PVOID CompletionKey
,
405 IN PVOID CompletionContext
,
406 IN NTSTATUS CompletionStatus
,
407 IN ULONG CompletionInformation
413 NtSetQuotaInformationFile(
415 PIO_STATUS_BLOCK IoStatusBlock
,
423 NtSetVolumeInformationFile(
424 IN HANDLE FileHandle
,
425 OUT PIO_STATUS_BLOCK IoStatusBlock
,
426 IN PVOID FsInformation
,
428 IN FS_INFORMATION_CLASS FsInformationClass
442 IN PUNICODE_STRING DriverServiceName
449 IN HANDLE FileHandle
,
450 OUT PIO_STATUS_BLOCK IoStatusBlock
,
451 IN PLARGE_INTEGER ByteOffset
,
452 IN PLARGE_INTEGER Lenght
,
453 OUT ULONG Key OPTIONAL
460 IN HANDLE FileHandle
,
461 IN HANDLE Event OPTIONAL
,
462 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
463 IN PVOID ApcContext OPTIONAL
,
464 OUT PIO_STATUS_BLOCK IoStatusBlock
,
467 IN PLARGE_INTEGER ByteOffset
,
468 IN PULONG Key OPTIONAL
474 IN HANDLE FileHandle
,
475 IN HANDLE Event OPTIONAL
,
476 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
477 IN PVOID ApcContext OPTIONAL
,
478 OUT PIO_STATUS_BLOCK IoStatusBlock
,
479 IN FILE_SEGMENT_ELEMENT BufferDescription
[],
480 IN ULONG BufferLength
,
481 IN PLARGE_INTEGER ByteOffset
,
482 IN PULONG Key OPTIONAL
488 IN PUNICODE_STRING EntryName
,
489 IN PUNICODE_STRING EntryValue
495 IN HANDLE FileHandle
,
496 OUT PIO_STATUS_BLOCK IoStatusBlock
503 OUT PHANDLE FileHandle
,
504 IN ACCESS_MASK DesiredAccess
,
505 IN POBJECT_ATTRIBUTES ObjectAttributes
,
506 OUT PIO_STATUS_BLOCK IoStatusBlock
,
507 IN PLARGE_INTEGER AllocationSize OPTIONAL
,
508 IN ULONG FileAttributes
,
509 IN ULONG ShareAccess
,
510 IN ULONG CreateDisposition
,
511 IN ULONG CreateOptions
,
512 IN PVOID EaBuffer OPTIONAL
,
518 ZwCreateIoCompletion(
519 OUT PHANDLE IoCompletionHandle
,
520 IN ACCESS_MASK DesiredAccess
,
521 IN POBJECT_ATTRIBUTES ObjectAttributes
,
522 IN ULONG NumberOfConcurrentThreads
527 ZwCreateMailslotFile(
528 OUT PHANDLE MailSlotFileHandle
,
529 IN ACCESS_MASK DesiredAccess
,
530 IN POBJECT_ATTRIBUTES ObjectAttributes
,
531 OUT PIO_STATUS_BLOCK IoStatusBlock
,
532 IN ULONG FileAttributes
,
533 IN ULONG ShareAccess
,
534 IN ULONG MaxMessageSize
,
535 IN PLARGE_INTEGER TimeOut
540 ZwCreateNamedPipeFile(
541 OUT PHANDLE NamedPipeFileHandle
,
542 IN ACCESS_MASK DesiredAccess
,
543 IN POBJECT_ATTRIBUTES ObjectAttributes
,
544 OUT PIO_STATUS_BLOCK IoStatusBlock
,
545 IN ULONG ShareAccess
,
546 IN ULONG CreateDisposition
,
547 IN ULONG CreateOptions
,
548 IN ULONG WriteModeMessage
,
549 IN ULONG ReadModeMessage
,
550 IN ULONG NonBlocking
,
551 IN ULONG MaxInstances
,
552 IN ULONG InBufferSize
,
553 IN ULONG OutBufferSize
,
554 IN PLARGE_INTEGER DefaultTimeOut
560 IN PUNICODE_STRING EntryName
,
561 IN PUNICODE_STRING EntryValue
567 IN POBJECT_ATTRIBUTES ObjectAttributes
573 ZwDeviceIoControlFile(
574 IN HANDLE DeviceHandle
,
575 IN HANDLE Event OPTIONAL
,
576 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
577 IN PVOID UserApcContext OPTIONAL
,
578 OUT PIO_STATUS_BLOCK IoStatusBlock
,
579 IN ULONG IoControlCode
,
580 IN PVOID InputBuffer
,
581 IN ULONG InputBufferSize
,
582 OUT PVOID OutputBuffer
,
583 IN ULONG OutputBufferSize
588 ZwEnumerateBootEntries(
596 IN HANDLE FileHandle
,
597 OUT PIO_STATUS_BLOCK IoStatusBlock
602 ZwFlushWriteBuffer(VOID
);
608 IN HANDLE DeviceHandle
,
609 IN HANDLE Event OPTIONAL
,
610 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
611 IN PVOID ApcContext OPTIONAL
,
612 OUT PIO_STATUS_BLOCK IoStatusBlock
,
613 IN ULONG IoControlCode
,
614 IN PVOID InputBuffer
,
615 IN ULONG InputBufferSize
,
616 OUT PVOID OutputBuffer
,
617 IN ULONG OutputBufferSize
623 IN PUNICODE_STRING DriverServiceName
630 IN HANDLE FileHandle
,
631 IN HANDLE Event OPTIONAL
,
632 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
633 IN PVOID ApcContext OPTIONAL
,
634 OUT PIO_STATUS_BLOCK IoStatusBlock
,
635 IN PLARGE_INTEGER ByteOffset
,
636 IN PLARGE_INTEGER Length
,
638 IN BOOLEAN FailImmediatedly
,
639 IN BOOLEAN ExclusiveLock
644 ZwNotifyChangeDirectoryFile(
645 IN HANDLE FileHandle
,
646 IN HANDLE Event OPTIONAL
,
647 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
648 IN PVOID ApcContext OPTIONAL
,
649 OUT PIO_STATUS_BLOCK IoStatusBlock
,
652 IN ULONG CompletionFilter
,
660 OUT PHANDLE FileHandle
,
661 IN ACCESS_MASK DesiredAccess
,
662 IN POBJECT_ATTRIBUTES ObjectAttributes
,
663 OUT PIO_STATUS_BLOCK IoStatusBlock
,
664 IN ULONG ShareAccess
,
671 OUT PHANDLE CompetionPort
,
672 IN ACCESS_MASK DesiredAccess
,
673 IN POBJECT_ATTRIBUTES ObjectAttributes
678 ZwQueryAttributesFile(
679 IN POBJECT_ATTRIBUTES ObjectAttributes
,
680 OUT PFILE_BASIC_INFORMATION FileInformation
685 ZwQueryBootEntryOrder(
700 ZwQueryDirectoryFile(
701 IN HANDLE FileHandle
,
702 IN HANDLE Event OPTIONAL
,
703 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
704 IN PVOID ApcContext OPTIONAL
,
705 OUT PIO_STATUS_BLOCK IoStatusBlock
,
706 OUT PVOID FileInformation
,
708 IN FILE_INFORMATION_CLASS FileInformationClass
,
709 IN BOOLEAN ReturnSingleEntry
,
710 IN PUNICODE_STRING FileName OPTIONAL
,
711 IN BOOLEAN RestartScan
717 IN HANDLE FileHandle
,
718 OUT PIO_STATUS_BLOCK IoStatusBlock
,
721 IN BOOLEAN ReturnSingleEntry
,
722 IN PVOID EaList OPTIONAL
,
723 IN ULONG EaListLength
,
724 IN PULONG EaIndex OPTIONAL
,
725 IN BOOLEAN RestartScan
730 ZwQueryFullAttributesFile(
731 IN POBJECT_ATTRIBUTES ObjectAttributes
,
732 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
738 ZwQueryInformationFile(
739 IN HANDLE FileHandle
,
740 OUT PIO_STATUS_BLOCK IoStatusBlock
,
741 OUT PVOID FileInformation
,
743 IN FILE_INFORMATION_CLASS FileInformationClass
749 IN HANDLE IoCompletionHandle
,
750 IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass
,
751 OUT PVOID IoCompletionInformation
,
752 IN ULONG IoCompletionInformationLength
,
753 OUT PULONG ResultLength OPTIONAL
759 ZwQueryQuotaInformationFile(
760 IN HANDLE FileHandle
,
761 OUT PIO_STATUS_BLOCK IoStatusBlock
,
764 IN BOOLEAN ReturnSingleEntry
,
765 IN PVOID SidList OPTIONAL
,
766 IN ULONG SidListLength
,
767 IN PSID StartSid OPTIONAL
,
768 IN BOOLEAN RestartScan
774 ZwQueryVolumeInformationFile(
775 IN HANDLE FileHandle
,
776 OUT PIO_STATUS_BLOCK IoStatusBlock
,
777 OUT PVOID FsInformation
,
779 IN FS_INFORMATION_CLASS FsInformationClass
786 IN HANDLE FileHandle
,
787 IN HANDLE Event OPTIONAL
,
788 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
789 IN PVOID UserApcContext OPTIONAL
,
790 OUT PIO_STATUS_BLOCK IoStatusBlock
,
792 IN ULONG BufferLength
,
793 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
794 IN PULONG Key OPTIONAL
800 IN HANDLE FileHandle
,
801 IN HANDLE Event OPTIONAL
,
802 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL
,
803 IN PVOID UserApcContext OPTIONAL
,
804 OUT PIO_STATUS_BLOCK UserIoStatusBlock
,
805 IN FILE_SEGMENT_ELEMENT BufferDescription
[],
806 IN ULONG BufferLength
,
807 IN PLARGE_INTEGER ByteOffset
,
808 IN PULONG Key OPTIONAL
813 ZwRemoveIoCompletion(
814 IN HANDLE IoCompletionHandle
,
815 OUT PVOID
*CompletionKey
,
816 OUT PVOID
*CompletionContext
,
817 OUT PIO_STATUS_BLOCK IoStatusBlock
,
818 IN PLARGE_INTEGER Timeout OPTIONAL
838 IN HANDLE FileHandle
,
839 IN PIO_STATUS_BLOCK IoStatusBlock
,
847 ZwSetInformationFile(
848 IN HANDLE FileHandle
,
849 IN PIO_STATUS_BLOCK IoStatusBlock
,
850 IN PVOID FileInformation
,
852 IN FILE_INFORMATION_CLASS FileInformationClass
858 IN HANDLE IoCompletionPortHandle
,
859 IN PVOID CompletionKey
,
860 IN PVOID CompletionContext
,
861 IN NTSTATUS CompletionStatus
,
862 IN ULONG CompletionInformation
868 ZwSetQuotaInformationFile(
870 PIO_STATUS_BLOCK IoStatusBlock
,
878 ZwSetVolumeInformationFile(
879 IN HANDLE FileHandle
,
880 OUT PIO_STATUS_BLOCK IoStatusBlock
,
881 IN PVOID FsInformation
,
883 IN FS_INFORMATION_CLASS FsInformationClass
897 IN PUNICODE_STRING DriverServiceName
904 IN HANDLE FileHandle
,
905 OUT PIO_STATUS_BLOCK IoStatusBlock
,
906 IN PLARGE_INTEGER ByteOffset
,
907 IN PLARGE_INTEGER Lenght
,
908 OUT ULONG Key OPTIONAL
915 IN HANDLE FileHandle
,
916 IN HANDLE Event OPTIONAL
,
917 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
918 IN PVOID ApcContext OPTIONAL
,
919 OUT PIO_STATUS_BLOCK IoStatusBlock
,
922 IN PLARGE_INTEGER ByteOffset
,
923 IN PULONG Key OPTIONAL
929 IN HANDLE FileHandle
,
930 IN HANDLE Event OPTIONAL
,
931 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
932 IN PVOID ApcContext OPTIONAL
,
933 OUT PIO_STATUS_BLOCK IoStatusBlock
,
934 IN FILE_SEGMENT_ELEMENT BufferDescription
[],
935 IN ULONG BufferLength
,
936 IN PLARGE_INTEGER ByteOffset
,
937 IN PULONG Key OPTIONAL