56e4425bc3187f79a24457864532623613d51e18
[reactos.git] / reactos / include / ndk / iofuncs.h
1 /*++ NDK Version: 0095
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 iofuncs.h
8
9 Abstract:
10
11 Function definitions for the I/O Manager.
12
13 Author:
14
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
16
17 --*/
18
19 #ifndef _IOFUNCS_H
20 #define _IOFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <iotypes.h>
27
28 //
29 // Native calls
30 //
31 NTSTATUS
32 NTAPI
33 NtAddBootEntry(
34 IN PUNICODE_STRING EntryName,
35 IN PUNICODE_STRING EntryValue
36 );
37
38 NTSTATUS
39 NTAPI
40 NtCancelIoFile(
41 IN HANDLE FileHandle,
42 OUT PIO_STATUS_BLOCK IoStatusBlock
43 );
44
45 NTSYSCALLAPI
46 NTSTATUS
47 NTAPI
48 NtCreateFile(
49 OUT PHANDLE FileHandle,
50 IN ACCESS_MASK DesiredAccess,
51 IN POBJECT_ATTRIBUTES ObjectAttributes,
52 OUT PIO_STATUS_BLOCK IoStatusBlock,
53 IN PLARGE_INTEGER AllocationSize OPTIONAL,
54 IN ULONG FileAttributes,
55 IN ULONG ShareAccess,
56 IN ULONG CreateDisposition,
57 IN ULONG CreateOptions,
58 IN PVOID EaBuffer OPTIONAL,
59 IN ULONG EaLength
60 );
61
62 NTSTATUS
63 NTAPI
64 NtCreateIoCompletion(
65 OUT PHANDLE IoCompletionHandle,
66 IN ACCESS_MASK DesiredAccess,
67 IN POBJECT_ATTRIBUTES ObjectAttributes,
68 IN ULONG NumberOfConcurrentThreads
69 );
70
71 NTSTATUS
72 NTAPI
73 NtCreateMailslotFile(
74 OUT PHANDLE MailSlotFileHandle,
75 IN ACCESS_MASK DesiredAccess,
76 IN POBJECT_ATTRIBUTES ObjectAttributes,
77 OUT PIO_STATUS_BLOCK IoStatusBlock,
78 IN ULONG FileAttributes,
79 IN ULONG ShareAccess,
80 IN ULONG MaxMessageSize,
81 IN PLARGE_INTEGER TimeOut
82 );
83
84 NTSTATUS
85 NTAPI
86 NtCreateNamedPipeFile(
87 OUT PHANDLE NamedPipeFileHandle,
88 IN ACCESS_MASK DesiredAccess,
89 IN POBJECT_ATTRIBUTES ObjectAttributes,
90 OUT PIO_STATUS_BLOCK IoStatusBlock,
91 IN ULONG ShareAccess,
92 IN ULONG CreateDisposition,
93 IN ULONG CreateOptions,
94 IN ULONG WriteModeMessage,
95 IN ULONG ReadModeMessage,
96 IN ULONG NonBlocking,
97 IN ULONG MaxInstances,
98 IN ULONG InBufferSize,
99 IN ULONG OutBufferSize,
100 IN PLARGE_INTEGER DefaultTimeOut
101 );
102
103 NTSTATUS
104 NTAPI
105 NtDeleteBootEntry(
106 IN PUNICODE_STRING EntryName,
107 IN PUNICODE_STRING EntryValue
108 );
109
110 NTSTATUS
111 NTAPI
112 NtDeleteFile(
113 IN POBJECT_ATTRIBUTES ObjectAttributes
114 );
115
116 NTSYSCALLAPI
117 NTSTATUS
118 NTAPI
119 NtDeviceIoControlFile(
120 IN HANDLE DeviceHandle,
121 IN HANDLE Event OPTIONAL,
122 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
123 IN PVOID UserApcContext OPTIONAL,
124 OUT PIO_STATUS_BLOCK IoStatusBlock,
125 IN ULONG IoControlCode,
126 IN PVOID InputBuffer,
127 IN ULONG InputBufferSize,
128 OUT PVOID OutputBuffer,
129 IN ULONG OutputBufferSize
130 );
131
132 NTSTATUS
133 NTAPI
134 NtEnumerateBootEntries(
135 IN ULONG Unknown1,
136 IN ULONG Unknown2
137 );
138
139 NTSTATUS
140 NTAPI
141 NtFlushBuffersFile(
142 IN HANDLE FileHandle,
143 OUT PIO_STATUS_BLOCK IoStatusBlock
144 );
145
146 NTSTATUS
147 NTAPI
148 NtFlushWriteBuffer(VOID);
149
150 NTSYSCALLAPI
151 NTSTATUS
152 NTAPI
153 NtFsControlFile(
154 IN HANDLE DeviceHandle,
155 IN HANDLE Event OPTIONAL,
156 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
157 IN PVOID ApcContext OPTIONAL,
158 OUT PIO_STATUS_BLOCK IoStatusBlock,
159 IN ULONG IoControlCode,
160 IN PVOID InputBuffer,
161 IN ULONG InputBufferSize,
162 OUT PVOID OutputBuffer,
163 IN ULONG OutputBufferSize
164 );
165
166 NTSTATUS
167 NTAPI
168 NtLoadDriver(
169 IN PUNICODE_STRING DriverServiceName
170 );
171
172 NTSYSCALLAPI
173 NTSTATUS
174 NTAPI
175 NtLockFile(
176 IN HANDLE FileHandle,
177 IN HANDLE Event OPTIONAL,
178 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
179 IN PVOID ApcContext OPTIONAL,
180 OUT PIO_STATUS_BLOCK IoStatusBlock,
181 IN PLARGE_INTEGER ByteOffset,
182 IN PLARGE_INTEGER Length,
183 IN ULONG Key,
184 IN BOOLEAN FailImmediatedly,
185 IN BOOLEAN ExclusiveLock
186 );
187
188 NTSTATUS
189 NTAPI
190 NtNotifyChangeDirectoryFile(
191 IN HANDLE FileHandle,
192 IN HANDLE Event OPTIONAL,
193 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
194 IN PVOID ApcContext OPTIONAL,
195 OUT PIO_STATUS_BLOCK IoStatusBlock,
196 OUT PVOID Buffer,
197 IN ULONG BufferSize,
198 IN ULONG CompletionFilter,
199 IN BOOLEAN WatchTree
200 );
201
202 NTSYSCALLAPI
203 NTSTATUS
204 NTAPI
205 NtOpenFile(
206 OUT PHANDLE FileHandle,
207 IN ACCESS_MASK DesiredAccess,
208 IN POBJECT_ATTRIBUTES ObjectAttributes,
209 OUT PIO_STATUS_BLOCK IoStatusBlock,
210 IN ULONG ShareAccess,
211 IN ULONG OpenOptions
212 );
213
214 NTSTATUS
215 NTAPI
216 NtOpenIoCompletion(
217 OUT PHANDLE CompetionPort,
218 IN ACCESS_MASK DesiredAccess,
219 IN POBJECT_ATTRIBUTES ObjectAttributes
220 );
221
222 NTSTATUS
223 NTAPI
224 NtQueryAttributesFile(
225 IN POBJECT_ATTRIBUTES ObjectAttributes,
226 OUT PFILE_BASIC_INFORMATION FileInformation
227 );
228
229 NTSTATUS
230 NTAPI
231 NtQueryBootEntryOrder(
232 IN ULONG Unknown1,
233 IN ULONG Unknown2
234 );
235
236 NTSTATUS
237 NTAPI
238 NtQueryBootOptions(
239 IN ULONG Unknown1,
240 IN ULONG Unknown2
241 );
242
243 NTSYSCALLAPI
244 NTSTATUS
245 NTAPI
246 NtQueryDirectoryFile(
247 IN HANDLE FileHandle,
248 IN HANDLE Event OPTIONAL,
249 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
250 IN PVOID ApcContext OPTIONAL,
251 OUT PIO_STATUS_BLOCK IoStatusBlock,
252 OUT PVOID FileInformation,
253 IN ULONG Length,
254 IN FILE_INFORMATION_CLASS FileInformationClass,
255 IN BOOLEAN ReturnSingleEntry,
256 IN PUNICODE_STRING FileName OPTIONAL,
257 IN BOOLEAN RestartScan
258 );
259
260 NTSTATUS
261 NTAPI
262 NtQueryEaFile(
263 IN HANDLE FileHandle,
264 OUT PIO_STATUS_BLOCK IoStatusBlock,
265 OUT PVOID Buffer,
266 IN ULONG Length,
267 IN BOOLEAN ReturnSingleEntry,
268 IN PVOID EaList OPTIONAL,
269 IN ULONG EaListLength,
270 IN PULONG EaIndex OPTIONAL,
271 IN BOOLEAN RestartScan
272 );
273
274 NTSTATUS
275 NTAPI
276 NtQueryFullAttributesFile(
277 IN POBJECT_ATTRIBUTES ObjectAttributes,
278 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
279 );
280
281 NTSYSCALLAPI
282 NTSTATUS
283 NTAPI
284 NtQueryInformationFile(
285 IN HANDLE FileHandle,
286 OUT PIO_STATUS_BLOCK IoStatusBlock,
287 OUT PVOID FileInformation,
288 IN ULONG Length,
289 IN FILE_INFORMATION_CLASS FileInformationClass
290 );
291
292 NTSTATUS
293 NTAPI
294 NtQueryIoCompletion(
295 IN HANDLE IoCompletionHandle,
296 IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
297 OUT PVOID IoCompletionInformation,
298 IN ULONG IoCompletionInformationLength,
299 OUT PULONG ResultLength OPTIONAL
300 );
301
302 NTSYSCALLAPI
303 NTSTATUS
304 NTAPI
305 NtQueryQuotaInformationFile(
306 IN HANDLE FileHandle,
307 OUT PIO_STATUS_BLOCK IoStatusBlock,
308 OUT PVOID Buffer,
309 IN ULONG Length,
310 IN BOOLEAN ReturnSingleEntry,
311 IN PVOID SidList OPTIONAL,
312 IN ULONG SidListLength,
313 IN PSID StartSid OPTIONAL,
314 IN BOOLEAN RestartScan
315 );
316
317 NTSYSCALLAPI
318 NTSTATUS
319 NTAPI
320 NtQueryVolumeInformationFile(
321 IN HANDLE FileHandle,
322 OUT PIO_STATUS_BLOCK IoStatusBlock,
323 OUT PVOID FsInformation,
324 IN ULONG Length,
325 IN FS_INFORMATION_CLASS FsInformationClass
326 );
327
328 NTSYSCALLAPI
329 NTSTATUS
330 NTAPI
331 NtReadFile(
332 IN HANDLE FileHandle,
333 IN HANDLE Event OPTIONAL,
334 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
335 IN PVOID UserApcContext OPTIONAL,
336 OUT PIO_STATUS_BLOCK IoStatusBlock,
337 OUT PVOID Buffer,
338 IN ULONG BufferLength,
339 IN PLARGE_INTEGER ByteOffset OPTIONAL,
340 IN PULONG Key OPTIONAL
341 );
342
343 NTSTATUS
344 NTAPI
345 NtReadFileScatter(
346 IN HANDLE FileHandle,
347 IN HANDLE Event OPTIONAL,
348 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
349 IN PVOID UserApcContext OPTIONAL,
350 OUT PIO_STATUS_BLOCK UserIoStatusBlock,
351 IN FILE_SEGMENT_ELEMENT BufferDescription[],
352 IN ULONG BufferLength,
353 IN PLARGE_INTEGER ByteOffset,
354 IN PULONG Key OPTIONAL
355 );
356
357 NTSTATUS
358 NTAPI
359 NtRemoveIoCompletion(
360 IN HANDLE IoCompletionHandle,
361 OUT PVOID *CompletionKey,
362 OUT PVOID *CompletionContext,
363 OUT PIO_STATUS_BLOCK IoStatusBlock,
364 IN PLARGE_INTEGER Timeout OPTIONAL
365 );
366
367 NTSTATUS
368 NTAPI
369 NtSetBootEntryOrder(
370 IN ULONG Unknown1,
371 IN ULONG Unknown2
372 );
373
374 NTSTATUS
375 NTAPI
376 NtSetBootOptions(
377 ULONG Unknown1,
378 ULONG Unknown2
379 );
380
381 NTSTATUS
382 NTAPI
383 NtSetEaFile(
384 IN HANDLE FileHandle,
385 IN PIO_STATUS_BLOCK IoStatusBlock,
386 PVOID EaBuffer,
387 ULONG EaBufferSize
388 );
389
390 NTSYSCALLAPI
391 NTSTATUS
392 NTAPI
393 NtSetInformationFile(
394 IN HANDLE FileHandle,
395 IN PIO_STATUS_BLOCK IoStatusBlock,
396 IN PVOID FileInformation,
397 IN ULONG Length,
398 IN FILE_INFORMATION_CLASS FileInformationClass
399 );
400
401 NTSTATUS
402 NTAPI
403 NtSetIoCompletion(
404 IN HANDLE IoCompletionPortHandle,
405 IN PVOID CompletionKey,
406 IN PVOID CompletionContext,
407 IN NTSTATUS CompletionStatus,
408 IN ULONG CompletionInformation
409 );
410
411 NTSYSCALLAPI
412 NTSTATUS
413 NTAPI
414 NtSetQuotaInformationFile(
415 HANDLE FileHandle,
416 PIO_STATUS_BLOCK IoStatusBlock,
417 PVOID Buffer,
418 ULONG BufferLength
419 );
420
421 NTSYSCALLAPI
422 NTSTATUS
423 NTAPI
424 NtSetVolumeInformationFile(
425 IN HANDLE FileHandle,
426 OUT PIO_STATUS_BLOCK IoStatusBlock,
427 IN PVOID FsInformation,
428 IN ULONG Length,
429 IN FS_INFORMATION_CLASS FsInformationClass
430 );
431
432 NTSTATUS
433 NTAPI
434 NtTranslateFilePath(
435 ULONG Unknown1,
436 ULONG Unknown2,
437 ULONG Unknown3
438 );
439
440 NTSTATUS
441 NTAPI
442 NtUnloadDriver(
443 IN PUNICODE_STRING DriverServiceName
444 );
445
446 NTSYSCALLAPI
447 NTSTATUS
448 NTAPI
449 NtUnlockFile(
450 IN HANDLE FileHandle,
451 OUT PIO_STATUS_BLOCK IoStatusBlock,
452 IN PLARGE_INTEGER ByteOffset,
453 IN PLARGE_INTEGER Lenght,
454 OUT ULONG Key OPTIONAL
455 );
456
457 NTSYSCALLAPI
458 NTSTATUS
459 NTAPI
460 NtWriteFile(
461 IN HANDLE FileHandle,
462 IN HANDLE Event OPTIONAL,
463 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
464 IN PVOID ApcContext OPTIONAL,
465 OUT PIO_STATUS_BLOCK IoStatusBlock,
466 IN PVOID Buffer,
467 IN ULONG Length,
468 IN PLARGE_INTEGER ByteOffset,
469 IN PULONG Key OPTIONAL
470 );
471
472 NTSTATUS
473 NTAPI
474 NtWriteFileGather(
475 IN HANDLE FileHandle,
476 IN HANDLE Event OPTIONAL,
477 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
478 IN PVOID ApcContext OPTIONAL,
479 OUT PIO_STATUS_BLOCK IoStatusBlock,
480 IN FILE_SEGMENT_ELEMENT BufferDescription[],
481 IN ULONG BufferLength,
482 IN PLARGE_INTEGER ByteOffset,
483 IN PULONG Key OPTIONAL
484 );
485
486 NTSTATUS
487 NTAPI
488 ZwAddBootEntry(
489 IN PUNICODE_STRING EntryName,
490 IN PUNICODE_STRING EntryValue
491 );
492
493 NTSTATUS
494 NTAPI
495 ZwCancelIoFile(
496 IN HANDLE FileHandle,
497 OUT PIO_STATUS_BLOCK IoStatusBlock
498 );
499
500 NTSYSCALLAPI
501 NTSTATUS
502 NTAPI
503 ZwCreateFile(
504 OUT PHANDLE FileHandle,
505 IN ACCESS_MASK DesiredAccess,
506 IN POBJECT_ATTRIBUTES ObjectAttributes,
507 OUT PIO_STATUS_BLOCK IoStatusBlock,
508 IN PLARGE_INTEGER AllocationSize OPTIONAL,
509 IN ULONG FileAttributes,
510 IN ULONG ShareAccess,
511 IN ULONG CreateDisposition,
512 IN ULONG CreateOptions,
513 IN PVOID EaBuffer OPTIONAL,
514 IN ULONG EaLength
515 );
516
517 NTSTATUS
518 NTAPI
519 ZwCreateIoCompletion(
520 OUT PHANDLE IoCompletionHandle,
521 IN ACCESS_MASK DesiredAccess,
522 IN POBJECT_ATTRIBUTES ObjectAttributes,
523 IN ULONG NumberOfConcurrentThreads
524 );
525
526 NTSTATUS
527 NTAPI
528 ZwCreateMailslotFile(
529 OUT PHANDLE MailSlotFileHandle,
530 IN ACCESS_MASK DesiredAccess,
531 IN POBJECT_ATTRIBUTES ObjectAttributes,
532 OUT PIO_STATUS_BLOCK IoStatusBlock,
533 IN ULONG FileAttributes,
534 IN ULONG ShareAccess,
535 IN ULONG MaxMessageSize,
536 IN PLARGE_INTEGER TimeOut
537 );
538
539 NTSTATUS
540 NTAPI
541 ZwCreateNamedPipeFile(
542 OUT PHANDLE NamedPipeFileHandle,
543 IN ACCESS_MASK DesiredAccess,
544 IN POBJECT_ATTRIBUTES ObjectAttributes,
545 OUT PIO_STATUS_BLOCK IoStatusBlock,
546 IN ULONG ShareAccess,
547 IN ULONG CreateDisposition,
548 IN ULONG CreateOptions,
549 IN ULONG WriteModeMessage,
550 IN ULONG ReadModeMessage,
551 IN ULONG NonBlocking,
552 IN ULONG MaxInstances,
553 IN ULONG InBufferSize,
554 IN ULONG OutBufferSize,
555 IN PLARGE_INTEGER DefaultTimeOut
556 );
557
558 NTSTATUS
559 NTAPI
560 ZwDeleteBootEntry(
561 IN PUNICODE_STRING EntryName,
562 IN PUNICODE_STRING EntryValue
563 );
564
565 NTSYSAPI
566 NTSTATUS
567 NTAPI
568 ZwDeleteFile(
569 IN POBJECT_ATTRIBUTES ObjectAttributes
570 );
571
572 NTSYSCALLAPI
573 NTSTATUS
574 NTAPI
575 ZwDeviceIoControlFile(
576 IN HANDLE DeviceHandle,
577 IN HANDLE Event OPTIONAL,
578 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
579 IN PVOID UserApcContext OPTIONAL,
580 OUT PIO_STATUS_BLOCK IoStatusBlock,
581 IN ULONG IoControlCode,
582 IN PVOID InputBuffer,
583 IN ULONG InputBufferSize,
584 OUT PVOID OutputBuffer,
585 IN ULONG OutputBufferSize
586 );
587
588 NTSTATUS
589 NTAPI
590 ZwEnumerateBootEntries(
591 IN ULONG Unknown1,
592 IN ULONG Unknown2
593 );
594
595 NTSYSAPI
596 NTSTATUS
597 NTAPI
598 ZwFlushBuffersFile(
599 IN HANDLE FileHandle,
600 OUT PIO_STATUS_BLOCK IoStatusBlock
601 );
602
603 NTSTATUS
604 NTAPI
605 ZwFlushWriteBuffer(VOID);
606
607 NTSYSCALLAPI
608 NTSTATUS
609 NTAPI
610 ZwFsControlFile(
611 IN HANDLE DeviceHandle,
612 IN HANDLE Event OPTIONAL,
613 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
614 IN PVOID ApcContext OPTIONAL,
615 OUT PIO_STATUS_BLOCK IoStatusBlock,
616 IN ULONG IoControlCode,
617 IN PVOID InputBuffer,
618 IN ULONG InputBufferSize,
619 OUT PVOID OutputBuffer,
620 IN ULONG OutputBufferSize
621 );
622
623 #ifdef NTOS_MODE_USER
624 NTSTATUS
625 NTAPI
626 ZwLoadDriver(
627 IN PUNICODE_STRING DriverServiceName
628 );
629 #endif
630
631 NTSYSCALLAPI
632 NTSTATUS
633 NTAPI
634 ZwLockFile(
635 IN HANDLE FileHandle,
636 IN HANDLE Event OPTIONAL,
637 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
638 IN PVOID ApcContext OPTIONAL,
639 OUT PIO_STATUS_BLOCK IoStatusBlock,
640 IN PLARGE_INTEGER ByteOffset,
641 IN PLARGE_INTEGER Length,
642 IN ULONG Key,
643 IN BOOLEAN FailImmediatedly,
644 IN BOOLEAN ExclusiveLock
645 );
646
647 NTSTATUS
648 NTAPI
649 ZwNotifyChangeDirectoryFile(
650 IN HANDLE FileHandle,
651 IN HANDLE Event OPTIONAL,
652 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
653 IN PVOID ApcContext OPTIONAL,
654 OUT PIO_STATUS_BLOCK IoStatusBlock,
655 OUT PVOID Buffer,
656 IN ULONG BufferSize,
657 IN ULONG CompletionFilter,
658 IN BOOLEAN WatchTree
659 );
660
661 NTSYSCALLAPI
662 NTSTATUS
663 NTAPI
664 ZwOpenFile(
665 OUT PHANDLE FileHandle,
666 IN ACCESS_MASK DesiredAccess,
667 IN POBJECT_ATTRIBUTES ObjectAttributes,
668 OUT PIO_STATUS_BLOCK IoStatusBlock,
669 IN ULONG ShareAccess,
670 IN ULONG OpenOptions
671 );
672
673 NTSTATUS
674 NTAPI
675 ZwOpenIoCompletion(
676 OUT PHANDLE CompetionPort,
677 IN ACCESS_MASK DesiredAccess,
678 IN POBJECT_ATTRIBUTES ObjectAttributes
679 );
680
681 NTSTATUS
682 NTAPI
683 ZwQueryAttributesFile(
684 IN POBJECT_ATTRIBUTES ObjectAttributes,
685 OUT PFILE_BASIC_INFORMATION FileInformation
686 );
687
688 NTSTATUS
689 NTAPI
690 ZwQueryBootEntryOrder(
691 IN ULONG Unknown1,
692 IN ULONG Unknown2
693 );
694
695 NTSTATUS
696 NTAPI
697 ZwQueryBootOptions(
698 IN ULONG Unknown1,
699 IN ULONG Unknown2
700 );
701
702 NTSYSCALLAPI
703 NTSTATUS
704 NTAPI
705 ZwQueryDirectoryFile(
706 IN HANDLE FileHandle,
707 IN HANDLE Event OPTIONAL,
708 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
709 IN PVOID ApcContext OPTIONAL,
710 OUT PIO_STATUS_BLOCK IoStatusBlock,
711 OUT PVOID FileInformation,
712 IN ULONG Length,
713 IN FILE_INFORMATION_CLASS FileInformationClass,
714 IN BOOLEAN ReturnSingleEntry,
715 IN PUNICODE_STRING FileName OPTIONAL,
716 IN BOOLEAN RestartScan
717 );
718
719 NTSTATUS
720 NTAPI
721 ZwQueryEaFile(
722 IN HANDLE FileHandle,
723 OUT PIO_STATUS_BLOCK IoStatusBlock,
724 OUT PVOID Buffer,
725 IN ULONG Length,
726 IN BOOLEAN ReturnSingleEntry,
727 IN PVOID EaList OPTIONAL,
728 IN ULONG EaListLength,
729 IN PULONG EaIndex OPTIONAL,
730 IN BOOLEAN RestartScan
731 );
732
733 NTSTATUS
734 NTAPI
735 ZwQueryFullAttributesFile(
736 IN POBJECT_ATTRIBUTES ObjectAttributes,
737 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
738 );
739
740 NTSYSCALLAPI
741 NTSTATUS
742 NTAPI
743 ZwQueryInformationFile(
744 IN HANDLE FileHandle,
745 OUT PIO_STATUS_BLOCK IoStatusBlock,
746 OUT PVOID FileInformation,
747 IN ULONG Length,
748 IN FILE_INFORMATION_CLASS FileInformationClass
749 );
750
751 NTSTATUS
752 NTAPI
753 ZwQueryIoCompletion(
754 IN HANDLE IoCompletionHandle,
755 IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
756 OUT PVOID IoCompletionInformation,
757 IN ULONG IoCompletionInformationLength,
758 OUT PULONG ResultLength OPTIONAL
759 );
760
761 NTSYSCALLAPI
762 NTSTATUS
763 NTAPI
764 ZwQueryQuotaInformationFile(
765 IN HANDLE FileHandle,
766 OUT PIO_STATUS_BLOCK IoStatusBlock,
767 OUT PVOID Buffer,
768 IN ULONG Length,
769 IN BOOLEAN ReturnSingleEntry,
770 IN PVOID SidList OPTIONAL,
771 IN ULONG SidListLength,
772 IN PSID StartSid OPTIONAL,
773 IN BOOLEAN RestartScan
774 );
775
776 NTSYSCALLAPI
777 NTSTATUS
778 NTAPI
779 ZwQueryVolumeInformationFile(
780 IN HANDLE FileHandle,
781 OUT PIO_STATUS_BLOCK IoStatusBlock,
782 OUT PVOID FsInformation,
783 IN ULONG Length,
784 IN FS_INFORMATION_CLASS FsInformationClass
785 );
786
787 NTSYSCALLAPI
788 NTSTATUS
789 NTAPI
790 ZwReadFile(
791 IN HANDLE FileHandle,
792 IN HANDLE Event OPTIONAL,
793 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
794 IN PVOID UserApcContext OPTIONAL,
795 OUT PIO_STATUS_BLOCK IoStatusBlock,
796 OUT PVOID Buffer,
797 IN ULONG BufferLength,
798 IN PLARGE_INTEGER ByteOffset OPTIONAL,
799 IN PULONG Key OPTIONAL
800 );
801
802 NTSTATUS
803 NTAPI
804 ZwReadFileScatter(
805 IN HANDLE FileHandle,
806 IN HANDLE Event OPTIONAL,
807 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
808 IN PVOID UserApcContext OPTIONAL,
809 OUT PIO_STATUS_BLOCK UserIoStatusBlock,
810 IN FILE_SEGMENT_ELEMENT BufferDescription[],
811 IN ULONG BufferLength,
812 IN PLARGE_INTEGER ByteOffset,
813 IN PULONG Key OPTIONAL
814 );
815
816 NTSTATUS
817 NTAPI
818 ZwRemoveIoCompletion(
819 IN HANDLE IoCompletionHandle,
820 OUT PVOID *CompletionKey,
821 OUT PVOID *CompletionContext,
822 OUT PIO_STATUS_BLOCK IoStatusBlock,
823 IN PLARGE_INTEGER Timeout OPTIONAL
824 );
825
826 NTSTATUS
827 NTAPI
828 ZwSetBootEntryOrder(
829 IN ULONG Unknown1,
830 IN ULONG Unknown2
831 );
832
833 NTSTATUS
834 NTAPI
835 ZwSetBootOptions(
836 ULONG Unknown1,
837 ULONG Unknown2
838 );
839
840 NTSTATUS
841 NTAPI
842 ZwSetEaFile(
843 IN HANDLE FileHandle,
844 IN PIO_STATUS_BLOCK IoStatusBlock,
845 PVOID EaBuffer,
846 ULONG EaBufferSize
847 );
848
849 NTSYSCALLAPI
850 NTSTATUS
851 NTAPI
852 ZwSetInformationFile(
853 IN HANDLE FileHandle,
854 IN PIO_STATUS_BLOCK IoStatusBlock,
855 IN PVOID FileInformation,
856 IN ULONG Length,
857 IN FILE_INFORMATION_CLASS FileInformationClass
858 );
859
860 NTSTATUS
861 NTAPI
862 ZwSetIoCompletion(
863 IN HANDLE IoCompletionPortHandle,
864 IN PVOID CompletionKey,
865 IN PVOID CompletionContext,
866 IN NTSTATUS CompletionStatus,
867 IN ULONG CompletionInformation
868 );
869
870 NTSYSCALLAPI
871 NTSTATUS
872 NTAPI
873 ZwSetQuotaInformationFile(
874 HANDLE FileHandle,
875 PIO_STATUS_BLOCK IoStatusBlock,
876 PVOID Buffer,
877 ULONG BufferLength
878 );
879
880 NTSYSCALLAPI
881 NTSTATUS
882 NTAPI
883 ZwSetVolumeInformationFile(
884 IN HANDLE FileHandle,
885 OUT PIO_STATUS_BLOCK IoStatusBlock,
886 IN PVOID FsInformation,
887 IN ULONG Length,
888 IN FS_INFORMATION_CLASS FsInformationClass
889 );
890
891 NTSTATUS
892 NTAPI
893 ZwTranslateFilePath(
894 ULONG Unknown1,
895 ULONG Unknown2,
896 ULONG Unknown3
897 );
898
899 NTSYSAPI
900 NTSTATUS
901 NTAPI
902 ZwUnloadDriver(
903 IN PUNICODE_STRING DriverServiceName
904 );
905
906 NTSYSCALLAPI
907 NTSTATUS
908 NTAPI
909 ZwUnlockFile(
910 IN HANDLE FileHandle,
911 OUT PIO_STATUS_BLOCK IoStatusBlock,
912 IN PLARGE_INTEGER ByteOffset,
913 IN PLARGE_INTEGER Lenght,
914 OUT ULONG Key OPTIONAL
915 );
916
917 NTSYSCALLAPI
918 NTSTATUS
919 NTAPI
920 ZwWriteFile(
921 IN HANDLE FileHandle,
922 IN HANDLE Event OPTIONAL,
923 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
924 IN PVOID ApcContext OPTIONAL,
925 OUT PIO_STATUS_BLOCK IoStatusBlock,
926 IN PVOID Buffer,
927 IN ULONG Length,
928 IN PLARGE_INTEGER ByteOffset,
929 IN PULONG Key OPTIONAL
930 );
931
932 NTSTATUS
933 NTAPI
934 ZwWriteFileGather(
935 IN HANDLE FileHandle,
936 IN HANDLE Event OPTIONAL,
937 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
938 IN PVOID ApcContext OPTIONAL,
939 OUT PIO_STATUS_BLOCK IoStatusBlock,
940 IN FILE_SEGMENT_ELEMENT BufferDescription[],
941 IN ULONG BufferLength,
942 IN PLARGE_INTEGER ByteOffset,
943 IN PULONG Key OPTIONAL
944 );
945
946 #endif
947