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