NtOpenFile

[DllImport("ntdll.dll", ExactSpelling = true)]
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
public static extern unsafe NTSTATUS NtOpenFile(
    HANDLE* FileHandle,
    uint DesiredAccess,
    OBJECT_ATTRIBUTES* ObjectAttributes,
    IO_STATUS_BLOCK* IoStatusBlock,
    uint ShareAccess,
    uint OpenOptions);

OBJECT_ATTRIBUTES

IO_STATUS_BLOCK

// DesiredAccess
public const int FILE_READ_DATA = 1;
public const int FILE_WRITE_DATA = 2;
public const int FILE_APPEND_DATA = 4;
public const int FILE_READ_EA = 8;
public const int FILE_WRITE_EA = 16;
public const int FILE_EXECUTE = 32;
public const int FILE_READ_ATTRIBUTES = 128;
public const int FILE_WRITE_ATTRIBUTES = 256;

Last updated