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