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