1const std = @import("../../std.zig"); 2const windows = std.os.windows; 3 4const BOOL = windows.BOOL; 5const DWORD = windows.DWORD; 6const ULONG = windows.ULONG; 7const WINAPI = windows.WINAPI; 8const NTSTATUS = windows.NTSTATUS; 9const WORD = windows.WORD; 10const HANDLE = windows.HANDLE; 11const ACCESS_MASK = windows.ACCESS_MASK; 12const IO_APC_ROUTINE = windows.IO_APC_ROUTINE; 13const BOOLEAN = windows.BOOLEAN; 14const OBJECT_ATTRIBUTES = windows.OBJECT_ATTRIBUTES; 15const PVOID = windows.PVOID; 16const IO_STATUS_BLOCK = windows.IO_STATUS_BLOCK; 17const LARGE_INTEGER = windows.LARGE_INTEGER; 18const OBJECT_INFORMATION_CLASS = windows.OBJECT_INFORMATION_CLASS; 19const FILE_INFORMATION_CLASS = windows.FILE_INFORMATION_CLASS; 20const UNICODE_STRING = windows.UNICODE_STRING; 21const RTL_OSVERSIONINFOW = windows.RTL_OSVERSIONINFOW; 22const FILE_BASIC_INFORMATION = windows.FILE_BASIC_INFORMATION; 23const SIZE_T = windows.SIZE_T; 24const CURDIR = windows.CURDIR; 25 26pub extern "NtDll" fn RtlGetVersion( 27 lpVersionInformation: *RTL_OSVERSIONINFOW, 28) callconv(WINAPI) NTSTATUS; 29pub extern "NtDll" fn RtlCaptureStackBackTrace( 30 FramesToSkip: DWORD, 31 FramesToCapture: DWORD, 32 BackTrace: **anyopaque, 33 BackTraceHash: ?*DWORD, 34) callconv(WINAPI) WORD; 35pub extern "NtDll" fn NtQueryInformationFile( 36 FileHandle: HANDLE, 37 IoStatusBlock: *IO_STATUS_BLOCK, 38 FileInformation: *anyopaque, 39 Length: ULONG, 40 FileInformationClass: FILE_INFORMATION_CLASS, 41) callconv(WINAPI) NTSTATUS; 42pub extern "NtDll" fn NtSetInformationFile( 43 FileHandle: HANDLE, 44 IoStatusBlock: *IO_STATUS_BLOCK, 45 FileInformation: PVOID, 46 Length: ULONG, 47 FileInformationClass: FILE_INFORMATION_CLASS, 48) callconv(WINAPI) NTSTATUS; 49 50pub extern "NtDll" fn NtQueryAttributesFile( 51 ObjectAttributes: *OBJECT_ATTRIBUTES, 52 FileAttributes: *FILE_BASIC_INFORMATION, 53) callconv(WINAPI) NTSTATUS; 54 55pub extern "NtDll" fn NtCreateFile( 56 FileHandle: *HANDLE, 57 DesiredAccess: ACCESS_MASK, 58 ObjectAttributes: *OBJECT_ATTRIBUTES, 59 IoStatusBlock: *IO_STATUS_BLOCK, 60 AllocationSize: ?*LARGE_INTEGER, 61 FileAttributes: ULONG, 62 ShareAccess: ULONG, 63 CreateDisposition: ULONG, 64 CreateOptions: ULONG, 65 EaBuffer: ?*anyopaque, 66 EaLength: ULONG, 67) callconv(WINAPI) NTSTATUS; 68pub extern "NtDll" fn NtDeviceIoControlFile( 69 FileHandle: HANDLE, 70 Event: ?HANDLE, 71 ApcRoutine: ?IO_APC_ROUTINE, 72 ApcContext: ?*anyopaque, 73 IoStatusBlock: *IO_STATUS_BLOCK, 74 IoControlCode: ULONG, 75 InputBuffer: ?*const anyopaque, 76 InputBufferLength: ULONG, 77 OutputBuffer: ?PVOID, 78 OutputBufferLength: ULONG, 79) callconv(WINAPI) NTSTATUS; 80pub extern "NtDll" fn NtFsControlFile( 81 FileHandle: HANDLE, 82 Event: ?HANDLE, 83 ApcRoutine: ?IO_APC_ROUTINE, 84 ApcContext: ?*anyopaque, 85 IoStatusBlock: *IO_STATUS_BLOCK, 86 FsControlCode: ULONG, 87 InputBuffer: ?*const anyopaque, 88 InputBufferLength: ULONG, 89 OutputBuffer: ?PVOID, 90 OutputBufferLength: ULONG, 91) callconv(WINAPI) NTSTATUS; 92pub extern "NtDll" fn NtClose(Handle: HANDLE) callconv(WINAPI) NTSTATUS; 93pub extern "NtDll" fn RtlDosPathNameToNtPathName_U( 94 DosPathName: [*:0]const u16, 95 NtPathName: *UNICODE_STRING, 96 NtFileNamePart: ?*?[*:0]const u16, 97 DirectoryInfo: ?*CURDIR, 98) callconv(WINAPI) BOOL; 99pub extern "NtDll" fn RtlFreeUnicodeString(UnicodeString: *UNICODE_STRING) callconv(WINAPI) void; 100 101pub extern "NtDll" fn NtQueryDirectoryFile( 102 FileHandle: HANDLE, 103 Event: ?HANDLE, 104 ApcRoutine: ?IO_APC_ROUTINE, 105 ApcContext: ?*anyopaque, 106 IoStatusBlock: *IO_STATUS_BLOCK, 107 FileInformation: *anyopaque, 108 Length: ULONG, 109 FileInformationClass: FILE_INFORMATION_CLASS, 110 ReturnSingleEntry: BOOLEAN, 111 FileName: ?*UNICODE_STRING, 112 RestartScan: BOOLEAN, 113) callconv(WINAPI) NTSTATUS; 114 115pub extern "NtDll" fn NtCreateKeyedEvent( 116 KeyedEventHandle: *HANDLE, 117 DesiredAccess: ACCESS_MASK, 118 ObjectAttributes: ?PVOID, 119 Flags: ULONG, 120) callconv(WINAPI) NTSTATUS; 121 122pub extern "NtDll" fn NtReleaseKeyedEvent( 123 EventHandle: ?HANDLE, 124 Key: ?*const anyopaque, 125 Alertable: BOOLEAN, 126 Timeout: ?*const LARGE_INTEGER, 127) callconv(WINAPI) NTSTATUS; 128 129pub extern "NtDll" fn NtWaitForKeyedEvent( 130 EventHandle: ?HANDLE, 131 Key: ?*const anyopaque, 132 Alertable: BOOLEAN, 133 Timeout: ?*const LARGE_INTEGER, 134) callconv(WINAPI) NTSTATUS; 135 136pub extern "NtDll" fn RtlSetCurrentDirectory_U(PathName: *UNICODE_STRING) callconv(WINAPI) NTSTATUS; 137 138pub extern "NtDll" fn NtQueryObject( 139 Handle: HANDLE, 140 ObjectInformationClass: OBJECT_INFORMATION_CLASS, 141 ObjectInformation: PVOID, 142 ObjectInformationLength: ULONG, 143 ReturnLength: ?*ULONG, 144) callconv(WINAPI) NTSTATUS; 145 146pub extern "NtDll" fn RtlWakeAddressAll( 147 Address: ?*const anyopaque, 148) callconv(WINAPI) void; 149 150pub extern "NtDll" fn RtlWakeAddressSingle( 151 Address: ?*const anyopaque, 152) callconv(WINAPI) void; 153 154pub extern "NtDll" fn RtlWaitOnAddress( 155 Address: ?*const anyopaque, 156 CompareAddress: ?*const anyopaque, 157 AddressSize: SIZE_T, 158 Timeout: ?*const LARGE_INTEGER, 159) callconv(WINAPI) NTSTATUS; 160 161pub extern "NtDll" fn NtLockFile( 162 FileHandle: HANDLE, 163 Event: ?HANDLE, 164 ApcRoutine: ?*IO_APC_ROUTINE, 165 ApcContext: ?*anyopaque, 166 IoStatusBlock: *IO_STATUS_BLOCK, 167 ByteOffset: *const LARGE_INTEGER, 168 Length: *const LARGE_INTEGER, 169 Key: ?*ULONG, 170 FailImmediately: BOOLEAN, 171 ExclusiveLock: BOOLEAN, 172) callconv(WINAPI) NTSTATUS; 173 174pub extern "NtDll" fn NtUnlockFile( 175 FileHandle: HANDLE, 176 IoStatusBlock: *IO_STATUS_BLOCK, 177 ByteOffset: *const LARGE_INTEGER, 178 Length: *const LARGE_INTEGER, 179 Key: ?*ULONG, 180) callconv(WINAPI) NTSTATUS; 181