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