mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
std.os.windows: Deprecate WINAPI in favor of CallingConvention.winapi.
This commit is contained in:
parent
5a6cc552e3
commit
be8a527eb2
@ -1344,7 +1344,7 @@ fn dumpSegfaultInfoPosix(sig: i32, code: i32, addr: usize, ctx_ptr: ?*anyopaque)
|
||||
}
|
||||
}
|
||||
|
||||
fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(windows.WINAPI) c_long {
|
||||
fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(.winapi) c_long {
|
||||
switch (info.ExceptionRecord.ExceptionCode) {
|
||||
windows.EXCEPTION_DATATYPE_MISALIGNMENT => handleSegfaultWindowsExtra(info, 0, "Unaligned Memory Access"),
|
||||
windows.EXCEPTION_ACCESS_VIOLATION => handleSegfaultWindowsExtra(info, 1, null),
|
||||
|
||||
@ -2824,6 +2824,7 @@ pub const STD_OUTPUT_HANDLE = maxInt(DWORD) - 11 + 1;
|
||||
/// The standard error device. Initially, this is the active console screen buffer, CONOUT$.
|
||||
pub const STD_ERROR_HANDLE = maxInt(DWORD) - 12 + 1;
|
||||
|
||||
/// Deprecated; use `std.builtin.CallingConvention.winapi` instead.
|
||||
pub const WINAPI: std.builtin.CallingConvention = .winapi;
|
||||
|
||||
pub const BOOL = c_int;
|
||||
|
||||
@ -8,7 +8,6 @@ const LPCWSTR = windows.LPCWSTR;
|
||||
const LSTATUS = windows.LSTATUS;
|
||||
const REGSAM = windows.REGSAM;
|
||||
const ULONG = windows.ULONG;
|
||||
const WINAPI = windows.WINAPI;
|
||||
|
||||
pub extern "advapi32" fn RegOpenKeyExW(
|
||||
hKey: HKEY,
|
||||
@ -16,7 +15,7 @@ pub extern "advapi32" fn RegOpenKeyExW(
|
||||
ulOptions: DWORD,
|
||||
samDesired: REGSAM,
|
||||
phkResult: *HKEY,
|
||||
) callconv(WINAPI) LSTATUS;
|
||||
) callconv(.winapi) LSTATUS;
|
||||
|
||||
pub extern "advapi32" fn RegQueryValueExW(
|
||||
hKey: HKEY,
|
||||
@ -25,13 +24,13 @@ pub extern "advapi32" fn RegQueryValueExW(
|
||||
lpType: ?*DWORD,
|
||||
lpData: ?*BYTE,
|
||||
lpcbData: ?*DWORD,
|
||||
) callconv(WINAPI) LSTATUS;
|
||||
) callconv(.winapi) LSTATUS;
|
||||
|
||||
pub extern "advapi32" fn RegCloseKey(hKey: HKEY) callconv(WINAPI) LSTATUS;
|
||||
pub extern "advapi32" fn RegCloseKey(hKey: HKEY) callconv(.winapi) LSTATUS;
|
||||
|
||||
// RtlGenRandom is known as SystemFunction036 under advapi32
|
||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694.aspx */
|
||||
pub extern "advapi32" fn SystemFunction036(output: [*]u8, length: ULONG) callconv(WINAPI) BOOL;
|
||||
pub extern "advapi32" fn SystemFunction036(output: [*]u8, length: ULONG) callconv(.winapi) BOOL;
|
||||
pub const RtlGenRandom = SystemFunction036;
|
||||
|
||||
pub const RRF = struct {
|
||||
@ -62,7 +61,7 @@ pub extern "advapi32" fn RegGetValueW(
|
||||
pdwType: ?*DWORD,
|
||||
pvData: ?*anyopaque,
|
||||
pcbData: ?*DWORD,
|
||||
) callconv(WINAPI) LSTATUS;
|
||||
) callconv(.winapi) LSTATUS;
|
||||
|
||||
pub extern "advapi32" fn RegLoadAppKeyW(
|
||||
lpFile: LPCWSTR,
|
||||
@ -70,4 +69,4 @@ pub extern "advapi32" fn RegLoadAppKeyW(
|
||||
samDesired: REGSAM,
|
||||
dwOptions: DWORD,
|
||||
reserved: DWORD,
|
||||
) callconv(WINAPI) LSTATUS;
|
||||
) callconv(.winapi) LSTATUS;
|
||||
|
||||
@ -4,7 +4,6 @@ const BOOL = windows.BOOL;
|
||||
const DWORD = windows.DWORD;
|
||||
const BYTE = windows.BYTE;
|
||||
const LPCWSTR = windows.LPCWSTR;
|
||||
const WINAPI = windows.WINAPI;
|
||||
|
||||
pub const CERT_INFO = *opaque {};
|
||||
pub const HCERTSTORE = *opaque {};
|
||||
@ -19,14 +18,14 @@ pub const CERT_CONTEXT = extern struct {
|
||||
pub extern "crypt32" fn CertOpenSystemStoreW(
|
||||
_: ?*const anyopaque,
|
||||
szSubsystemProtocol: LPCWSTR,
|
||||
) callconv(WINAPI) ?HCERTSTORE;
|
||||
) callconv(.winapi) ?HCERTSTORE;
|
||||
|
||||
pub extern "crypt32" fn CertCloseStore(
|
||||
hCertStore: HCERTSTORE,
|
||||
dwFlags: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "crypt32" fn CertEnumCertificatesInStore(
|
||||
hCertStore: HCERTSTORE,
|
||||
pPrevCertContext: ?*CERT_CONTEXT,
|
||||
) callconv(WINAPI) ?*CERT_CONTEXT;
|
||||
) callconv(.winapi) ?*CERT_CONTEXT;
|
||||
|
||||
@ -41,7 +41,6 @@ const VECTORED_EXCEPTION_HANDLER = windows.VECTORED_EXCEPTION_HANDLER;
|
||||
const WCHAR = windows.WCHAR;
|
||||
const WIN32_FIND_DATAW = windows.WIN32_FIND_DATAW;
|
||||
const Win32Error = windows.Win32Error;
|
||||
const WINAPI = windows.WINAPI;
|
||||
const WORD = windows.WORD;
|
||||
|
||||
// I/O - Filesystem
|
||||
@ -55,18 +54,18 @@ pub extern "kernel32" fn ReadDirectoryChangesW(
|
||||
lpBytesReturned: ?*windows.DWORD,
|
||||
lpOverlapped: ?*windows.OVERLAPPED,
|
||||
lpCompletionRoutine: windows.LPOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(windows.WINAPI) windows.BOOL;
|
||||
) callconv(.winapi) windows.BOOL;
|
||||
|
||||
// TODO: Wrapper around NtCancelIoFile.
|
||||
pub extern "kernel32" fn CancelIo(
|
||||
hFile: HANDLE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtCancelIoFileEx.
|
||||
pub extern "kernel32" fn CancelIoEx(
|
||||
hFile: HANDLE,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn CreateFileW(
|
||||
lpFileName: LPCWSTR,
|
||||
@ -76,7 +75,7 @@ pub extern "kernel32" fn CreateFileW(
|
||||
dwCreationDisposition: DWORD,
|
||||
dwFlagsAndAttributes: DWORD,
|
||||
hTemplateFile: ?HANDLE,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
// TODO A bunch of logic around NtCreateNamedPipe
|
||||
pub extern "kernel32" fn CreateNamedPipeW(
|
||||
@ -88,16 +87,16 @@ pub extern "kernel32" fn CreateNamedPipeW(
|
||||
nInBufferSize: DWORD,
|
||||
nDefaultTimeOut: DWORD,
|
||||
lpSecurityAttributes: ?*const SECURITY_ATTRIBUTES,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "kernel32" fn FindFirstFileW(
|
||||
lpFileName: LPCWSTR,
|
||||
lpFindFileData: *WIN32_FIND_DATAW,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "kernel32" fn FindClose(
|
||||
hFindFile: HANDLE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around RtlGetFullPathName_UEx
|
||||
pub extern "kernel32" fn GetFullPathNameW(
|
||||
@ -105,18 +104,18 @@ pub extern "kernel32" fn GetFullPathNameW(
|
||||
nBufferLength: DWORD,
|
||||
lpBuffer: LPWSTR,
|
||||
lpFilePart: ?*?LPWSTR,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: Matches `STD_*_HANDLE` to peb().ProcessParameters.Standard*
|
||||
pub extern "kernel32" fn GetStdHandle(
|
||||
nStdHandle: DWORD,
|
||||
) callconv(WINAPI) ?HANDLE;
|
||||
) callconv(.winapi) ?HANDLE;
|
||||
|
||||
pub extern "kernel32" fn MoveFileExW(
|
||||
lpExistingFileName: LPCWSTR,
|
||||
lpNewFileName: LPCWSTR,
|
||||
dwFlags: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtSetInformationFile + `FILE_POSITION_INFORMATION`.
|
||||
// `FILE_STANDARD_INFORMATION` is also used if dwMoveMethod is `FILE_END`
|
||||
@ -125,7 +124,7 @@ pub extern "kernel32" fn SetFilePointerEx(
|
||||
liDistanceToMove: LARGE_INTEGER,
|
||||
lpNewFilePointer: ?*LARGE_INTEGER,
|
||||
dwMoveMethod: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtSetInformationFile + `FILE_BASIC_INFORMATION`
|
||||
pub extern "kernel32" fn SetFileTime(
|
||||
@ -133,7 +132,7 @@ pub extern "kernel32" fn SetFileTime(
|
||||
lpCreationTime: ?*const FILETIME,
|
||||
lpLastAccessTime: ?*const FILETIME,
|
||||
lpLastWriteTime: ?*const FILETIME,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn WriteFile(
|
||||
in_hFile: HANDLE,
|
||||
@ -141,35 +140,35 @@ pub extern "kernel32" fn WriteFile(
|
||||
in_nNumberOfBytesToWrite: DWORD,
|
||||
out_lpNumberOfBytesWritten: ?*DWORD,
|
||||
in_out_lpOverlapped: ?*OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: wrapper for NtQueryInformationFile + `FILE_STANDARD_INFORMATION`
|
||||
pub extern "kernel32" fn GetFileSizeEx(
|
||||
hFile: HANDLE,
|
||||
lpFileSize: *LARGE_INTEGER,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around GetStdHandle + NtFlushBuffersFile.
|
||||
pub extern "kernel32" fn FlushFileBuffers(
|
||||
hFile: HANDLE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtSetInformationFile + `FILE_IO_COMPLETION_NOTIFICATION_INFORMATION`.
|
||||
pub extern "kernel32" fn SetFileCompletionNotificationModes(
|
||||
FileHandle: HANDLE,
|
||||
Flags: UCHAR,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: `RtlGetCurrentDirectory_U(nBufferLength * 2, lpBuffer)`
|
||||
pub extern "kernel32" fn GetCurrentDirectoryW(
|
||||
nBufferLength: DWORD,
|
||||
lpBuffer: ?[*]WCHAR,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: RtlDosPathNameToNtPathNameU_WithStatus + NtQueryAttributesFile.
|
||||
pub extern "kernel32" fn GetFileAttributesW(
|
||||
lpFileName: LPCWSTR,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
pub extern "kernel32" fn ReadFile(
|
||||
hFile: HANDLE,
|
||||
@ -177,12 +176,12 @@ pub extern "kernel32" fn ReadFile(
|
||||
nNumberOfBytesToRead: DWORD,
|
||||
lpNumberOfBytesRead: ?*DWORD,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn GetSystemDirectoryW(
|
||||
lpBuffer: LPWSTR,
|
||||
uSize: UINT,
|
||||
) callconv(WINAPI) UINT;
|
||||
) callconv(.winapi) UINT;
|
||||
|
||||
// I/O - Kernel Objects
|
||||
|
||||
@ -192,7 +191,7 @@ pub extern "kernel32" fn CreateEventExW(
|
||||
lpName: ?LPCWSTR,
|
||||
dwFlags: DWORD,
|
||||
dwDesiredAccess: DWORD,
|
||||
) callconv(WINAPI) ?HANDLE;
|
||||
) callconv(.winapi) ?HANDLE;
|
||||
|
||||
// TODO: Wrapper around GetStdHandle + NtDuplicateObject.
|
||||
pub extern "kernel32" fn DuplicateHandle(
|
||||
@ -203,14 +202,14 @@ pub extern "kernel32" fn DuplicateHandle(
|
||||
dwDesiredAccess: DWORD,
|
||||
bInheritHandle: BOOL,
|
||||
dwOptions: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around GetStdHandle + NtQueryObject + NtSetInformationObject with .ObjectHandleFlagInformation.
|
||||
pub extern "kernel32" fn SetHandleInformation(
|
||||
hObject: HANDLE,
|
||||
dwMask: DWORD,
|
||||
dwFlags: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtRemoveIoCompletion.
|
||||
pub extern "kernel32" fn GetQueuedCompletionStatus(
|
||||
@ -219,7 +218,7 @@ pub extern "kernel32" fn GetQueuedCompletionStatus(
|
||||
lpCompletionKey: *ULONG_PTR,
|
||||
lpOverlapped: *?*OVERLAPPED,
|
||||
dwMilliseconds: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtRemoveIoCompletionEx.
|
||||
pub extern "kernel32" fn GetQueuedCompletionStatusEx(
|
||||
@ -229,7 +228,7 @@ pub extern "kernel32" fn GetQueuedCompletionStatusEx(
|
||||
ulNumEntriesRemoved: *ULONG,
|
||||
dwMilliseconds: DWORD,
|
||||
fAlertable: BOOL,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtSetIoCompletion with `IoStatus = .SUCCESS`.
|
||||
pub extern "kernel32" fn PostQueuedCompletionStatus(
|
||||
@ -237,7 +236,7 @@ pub extern "kernel32" fn PostQueuedCompletionStatus(
|
||||
dwNumberOfBytesTransferred: DWORD,
|
||||
dwCompletionKey: ULONG_PTR,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO:
|
||||
// GetOverlappedResultEx with bAlertable=false, which calls: GetStdHandle + WaitForSingleObjectEx.
|
||||
@ -247,7 +246,7 @@ pub extern "kernel32" fn GetOverlappedResult(
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
lpNumberOfBytesTransferred: *DWORD,
|
||||
bWait: BOOL,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtCreateIoCompletion + NtSetInformationFile with FILE_COMPLETION_INFORMATION.
|
||||
// This would be better splitting into two functions.
|
||||
@ -256,30 +255,30 @@ pub extern "kernel32" fn CreateIoCompletionPort(
|
||||
ExistingCompletionPort: ?HANDLE,
|
||||
CompletionKey: ULONG_PTR,
|
||||
NumberOfConcurrentThreads: DWORD,
|
||||
) callconv(WINAPI) ?HANDLE;
|
||||
) callconv(.winapi) ?HANDLE;
|
||||
|
||||
// TODO: Forwarder to NtAddVectoredExceptionHandler.
|
||||
pub extern "kernel32" fn AddVectoredExceptionHandler(
|
||||
First: ULONG,
|
||||
Handler: ?VECTORED_EXCEPTION_HANDLER,
|
||||
) callconv(WINAPI) ?LPVOID;
|
||||
) callconv(.winapi) ?LPVOID;
|
||||
|
||||
// TODO: Forwarder to NtRemoveVectoredExceptionHandler.
|
||||
pub extern "kernel32" fn RemoveVectoredExceptionHandler(
|
||||
Handle: HANDLE,
|
||||
) callconv(WINAPI) ULONG;
|
||||
) callconv(.winapi) ULONG;
|
||||
|
||||
// TODO: Wrapper around RtlReportSilentProcessExit + NtTerminateProcess.
|
||||
pub extern "kernel32" fn TerminateProcess(
|
||||
hProcess: HANDLE,
|
||||
uExitCode: UINT,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: WaitForSingleObjectEx with bAlertable=false.
|
||||
pub extern "kernel32" fn WaitForSingleObject(
|
||||
hHandle: HANDLE,
|
||||
dwMilliseconds: DWORD,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: Wrapper for GetStdHandle + NtWaitForSingleObject.
|
||||
// Sets up an activation context before calling NtWaitForSingleObject.
|
||||
@ -287,7 +286,7 @@ pub extern "kernel32" fn WaitForSingleObjectEx(
|
||||
hHandle: HANDLE,
|
||||
dwMilliseconds: DWORD,
|
||||
bAlertable: BOOL,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: WaitForMultipleObjectsEx with alertable=false
|
||||
pub extern "kernel32" fn WaitForMultipleObjects(
|
||||
@ -295,7 +294,7 @@ pub extern "kernel32" fn WaitForMultipleObjects(
|
||||
lpHandle: [*]const HANDLE,
|
||||
bWaitAll: BOOL,
|
||||
dwMilliseconds: DWORD,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: Wrapper around NtWaitForMultipleObjects.
|
||||
pub extern "kernel32" fn WaitForMultipleObjectsEx(
|
||||
@ -304,7 +303,7 @@ pub extern "kernel32" fn WaitForMultipleObjectsEx(
|
||||
bWaitAll: BOOL,
|
||||
dwMilliseconds: DWORD,
|
||||
bAlertable: BOOL,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// Process Management
|
||||
|
||||
@ -319,57 +318,57 @@ pub extern "kernel32" fn CreateProcessW(
|
||||
lpCurrentDirectory: ?LPCWSTR,
|
||||
lpStartupInfo: *STARTUPINFOW,
|
||||
lpProcessInformation: *PROCESS_INFORMATION,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Fowarder to RtlExitUserProcess.
|
||||
pub extern "kernel32" fn ExitProcess(
|
||||
exit_code: UINT,
|
||||
) callconv(WINAPI) noreturn;
|
||||
) callconv(.winapi) noreturn;
|
||||
|
||||
// TODO: SleepEx with bAlertable=false.
|
||||
pub extern "kernel32" fn Sleep(
|
||||
dwMilliseconds: DWORD,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Wrapper around NtQueryInformationProcess with `PROCESS_BASIC_INFORMATION`.
|
||||
pub extern "kernel32" fn GetExitCodeProcess(
|
||||
hProcess: HANDLE,
|
||||
lpExitCode: *DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Already a wrapper for this, see `windows.GetCurrentProcess`.
|
||||
pub extern "kernel32" fn GetCurrentProcess() callconv(WINAPI) HANDLE;
|
||||
pub extern "kernel32" fn GetCurrentProcess() callconv(.winapi) HANDLE;
|
||||
|
||||
// TODO: memcpy peb().ProcessParameters.Environment, mem.span(0). Requires locking the PEB.
|
||||
pub extern "kernel32" fn GetEnvironmentStringsW() callconv(WINAPI) ?LPWSTR;
|
||||
pub extern "kernel32" fn GetEnvironmentStringsW() callconv(.winapi) ?LPWSTR;
|
||||
|
||||
// TODO: RtlFreeHeap on the output of GetEnvironmentStringsW.
|
||||
pub extern "kernel32" fn FreeEnvironmentStringsW(
|
||||
penv: LPWSTR,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around RtlQueryEnvironmentVariable.
|
||||
pub extern "kernel32" fn GetEnvironmentVariableW(
|
||||
lpName: ?LPCWSTR,
|
||||
lpBuffer: ?[*]WCHAR,
|
||||
nSize: DWORD,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: Wrapper around RtlSetEnvironmentVar.
|
||||
pub extern "kernel32" fn SetEnvironmentVariableW(
|
||||
lpName: LPCWSTR,
|
||||
lpValue: ?LPCWSTR,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn CreateToolhelp32Snapshot(
|
||||
dwFlags: DWORD,
|
||||
th32ProcessID: DWORD,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
// Threading
|
||||
|
||||
// TODO: Already a wrapper for this, see `windows.GetCurrentThreadId`.
|
||||
pub extern "kernel32" fn GetCurrentThreadId() callconv(WINAPI) DWORD;
|
||||
pub extern "kernel32" fn GetCurrentThreadId() callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: CreateRemoteThread with hProcess=NtCurrentProcess().
|
||||
pub extern "kernel32" fn CreateThread(
|
||||
@ -379,64 +378,64 @@ pub extern "kernel32" fn CreateThread(
|
||||
lpParameter: ?LPVOID,
|
||||
dwCreationFlags: DWORD,
|
||||
lpThreadId: ?*DWORD,
|
||||
) callconv(WINAPI) ?HANDLE;
|
||||
) callconv(.winapi) ?HANDLE;
|
||||
|
||||
// TODO: Wrapper around RtlDelayExecution.
|
||||
pub extern "kernel32" fn SwitchToThread() callconv(WINAPI) BOOL;
|
||||
pub extern "kernel32" fn SwitchToThread() callconv(.winapi) BOOL;
|
||||
|
||||
// Locks, critical sections, initializers
|
||||
|
||||
// TODO: Forwarder to RtlInitializeCriticalSection
|
||||
pub extern "kernel32" fn InitializeCriticalSection(
|
||||
lpCriticalSection: *CRITICAL_SECTION,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlEnterCriticalSection
|
||||
pub extern "kernel32" fn EnterCriticalSection(
|
||||
lpCriticalSection: *CRITICAL_SECTION,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlLeaveCriticalSection
|
||||
pub extern "kernel32" fn LeaveCriticalSection(
|
||||
lpCriticalSection: *CRITICAL_SECTION,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlDeleteCriticalSection
|
||||
pub extern "kernel32" fn DeleteCriticalSection(
|
||||
lpCriticalSection: *CRITICAL_SECTION,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlTryAcquireSRWLockExclusive
|
||||
pub extern "kernel32" fn TryAcquireSRWLockExclusive(
|
||||
SRWLock: *SRWLOCK,
|
||||
) callconv(WINAPI) BOOLEAN;
|
||||
) callconv(.winapi) BOOLEAN;
|
||||
|
||||
// TODO: Forwarder to RtlAcquireSRWLockExclusive
|
||||
pub extern "kernel32" fn AcquireSRWLockExclusive(
|
||||
SRWLock: *SRWLOCK,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlReleaseSRWLockExclusive
|
||||
pub extern "kernel32" fn ReleaseSRWLockExclusive(
|
||||
SRWLock: *SRWLOCK,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "kernel32" fn InitOnceExecuteOnce(
|
||||
InitOnce: *INIT_ONCE,
|
||||
InitFn: INIT_ONCE_FN,
|
||||
Parameter: ?*anyopaque,
|
||||
Context: ?*anyopaque,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Forwarder to RtlWakeConditionVariable
|
||||
pub extern "kernel32" fn WakeConditionVariable(
|
||||
ConditionVariable: *CONDITION_VARIABLE,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO: Forwarder to RtlWakeAllConditionVariable
|
||||
pub extern "kernel32" fn WakeAllConditionVariable(
|
||||
ConditionVariable: *CONDITION_VARIABLE,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// TODO:
|
||||
// - dwMilliseconds -> LARGE_INTEGER.
|
||||
@ -447,40 +446,40 @@ pub extern "kernel32" fn SleepConditionVariableSRW(
|
||||
SRWLock: *SRWLOCK,
|
||||
dwMilliseconds: DWORD,
|
||||
Flags: ULONG,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// Console management
|
||||
|
||||
pub extern "kernel32" fn GetConsoleMode(
|
||||
hConsoleHandle: HANDLE,
|
||||
lpMode: *DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn SetConsoleMode(
|
||||
hConsoleHandle: HANDLE,
|
||||
dwMode: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn GetConsoleScreenBufferInfo(
|
||||
hConsoleOutput: HANDLE,
|
||||
lpConsoleScreenBufferInfo: *CONSOLE_SCREEN_BUFFER_INFO,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn SetConsoleTextAttribute(
|
||||
hConsoleOutput: HANDLE,
|
||||
wAttributes: WORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn SetConsoleCtrlHandler(
|
||||
HandlerRoutine: ?HANDLER_ROUTINE,
|
||||
Add: BOOL,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn SetConsoleOutputCP(
|
||||
wCodePageID: UINT,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn GetConsoleOutputCP() callconv(WINAPI) UINT;
|
||||
pub extern "kernel32" fn GetConsoleOutputCP() callconv(.winapi) UINT;
|
||||
|
||||
pub extern "kernel32" fn FillConsoleOutputAttribute(
|
||||
hConsoleOutput: HANDLE,
|
||||
@ -488,7 +487,7 @@ pub extern "kernel32" fn FillConsoleOutputAttribute(
|
||||
nLength: DWORD,
|
||||
dwWriteCoord: COORD,
|
||||
lpNumberOfAttrsWritten: *DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn FillConsoleOutputCharacterW(
|
||||
hConsoleOutput: HANDLE,
|
||||
@ -496,12 +495,12 @@ pub extern "kernel32" fn FillConsoleOutputCharacterW(
|
||||
nLength: DWORD,
|
||||
dwWriteCoord: COORD,
|
||||
lpNumberOfCharsWritten: *DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn SetConsoleCursorPosition(
|
||||
hConsoleOutput: HANDLE,
|
||||
dwCursorPosition: COORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn WriteConsoleW(
|
||||
hConsoleOutput: HANDLE,
|
||||
@ -509,7 +508,7 @@ pub extern "kernel32" fn WriteConsoleW(
|
||||
nNumberOfCharsToWrite: DWORD,
|
||||
lpNumberOfCharsWritten: ?*DWORD,
|
||||
lpReserved: ?LPVOID,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn ReadConsoleOutputCharacterW(
|
||||
hConsoleOutput: HANDLE,
|
||||
@ -517,7 +516,7 @@ pub extern "kernel32" fn ReadConsoleOutputCharacterW(
|
||||
nLength: DWORD,
|
||||
dwReadCoord: COORD,
|
||||
lpNumberOfCharsRead: *DWORD,
|
||||
) callconv(windows.WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// Memory Mapping/Allocation
|
||||
|
||||
@ -526,12 +525,12 @@ pub extern "kernel32" fn HeapCreate(
|
||||
flOptions: DWORD,
|
||||
dwInitialSize: SIZE_T,
|
||||
dwMaximumSize: SIZE_T,
|
||||
) callconv(WINAPI) ?HANDLE;
|
||||
) callconv(.winapi) ?HANDLE;
|
||||
|
||||
// TODO: Wrapper around RtlDestroyHeap (BOOLEAN -> BOOL).
|
||||
pub extern "kernel32" fn HeapDestroy(
|
||||
hHeap: HANDLE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Forwarder to RtlReAllocateHeap.
|
||||
pub extern "kernel32" fn HeapReAlloc(
|
||||
@ -539,28 +538,28 @@ pub extern "kernel32" fn HeapReAlloc(
|
||||
dwFlags: DWORD,
|
||||
lpMem: *anyopaque,
|
||||
dwBytes: SIZE_T,
|
||||
) callconv(WINAPI) ?*anyopaque;
|
||||
) callconv(.winapi) ?*anyopaque;
|
||||
|
||||
// TODO: Fowrarder to RtlAllocateHeap.
|
||||
pub extern "kernel32" fn HeapAlloc(
|
||||
hHeap: HANDLE,
|
||||
dwFlags: DWORD,
|
||||
dwBytes: SIZE_T,
|
||||
) callconv(WINAPI) ?*anyopaque;
|
||||
) callconv(.winapi) ?*anyopaque;
|
||||
|
||||
// TODO: Fowrarder to RtlFreeHeap.
|
||||
pub extern "kernel32" fn HeapFree(
|
||||
hHeap: HANDLE,
|
||||
dwFlags: DWORD,
|
||||
lpMem: LPVOID,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around RtlValidateHeap (BOOLEAN -> BOOL)
|
||||
pub extern "kernel32" fn HeapValidate(
|
||||
hHeap: HANDLE,
|
||||
dwFlags: DWORD,
|
||||
lpMem: ?*const anyopaque,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtAllocateVirtualMemory.
|
||||
pub extern "kernel32" fn VirtualAlloc(
|
||||
@ -568,7 +567,7 @@ pub extern "kernel32" fn VirtualAlloc(
|
||||
dwSize: SIZE_T,
|
||||
flAllocationType: DWORD,
|
||||
flProtect: DWORD,
|
||||
) callconv(WINAPI) ?LPVOID;
|
||||
) callconv(.winapi) ?LPVOID;
|
||||
|
||||
// TODO: Wrapper around NtFreeVirtualMemory.
|
||||
// If the return value is .INVALID_PAGE_PROTECTION, calls RtlFlushSecureMemoryCache and try again.
|
||||
@ -576,21 +575,21 @@ pub extern "kernel32" fn VirtualFree(
|
||||
lpAddress: ?LPVOID,
|
||||
dwSize: SIZE_T,
|
||||
dwFreeType: DWORD,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// TODO: Wrapper around NtQueryVirtualMemory.
|
||||
pub extern "kernel32" fn VirtualQuery(
|
||||
lpAddress: ?LPVOID,
|
||||
lpBuffer: PMEMORY_BASIC_INFORMATION,
|
||||
dwLength: SIZE_T,
|
||||
) callconv(WINAPI) SIZE_T;
|
||||
) callconv(.winapi) SIZE_T;
|
||||
|
||||
pub extern "kernel32" fn LocalFree(
|
||||
hMem: HLOCAL,
|
||||
) callconv(WINAPI) ?HLOCAL;
|
||||
) callconv(.winapi) ?HLOCAL;
|
||||
|
||||
// TODO: Getter for peb.ProcessHeap
|
||||
pub extern "kernel32" fn GetProcessHeap() callconv(WINAPI) ?HANDLE;
|
||||
pub extern "kernel32" fn GetProcessHeap() callconv(.winapi) ?HANDLE;
|
||||
|
||||
// Code Libraries/Modules
|
||||
|
||||
@ -599,49 +598,49 @@ pub extern "kernel32" fn GetModuleFileNameW(
|
||||
hModule: ?HMODULE,
|
||||
lpFilename: [*]WCHAR,
|
||||
nSize: DWORD,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
extern "kernel32" fn K32GetModuleFileNameExW(
|
||||
hProcess: HANDLE,
|
||||
hModule: ?HMODULE,
|
||||
lpFilename: LPWSTR,
|
||||
nSize: DWORD,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
pub const GetModuleFileNameExW = K32GetModuleFileNameExW;
|
||||
|
||||
// TODO: Wrapper around ntdll.LdrGetDllHandle, which is a wrapper around LdrGetDllHandleEx
|
||||
pub extern "kernel32" fn GetModuleHandleW(
|
||||
lpModuleName: ?LPCWSTR,
|
||||
) callconv(WINAPI) ?HMODULE;
|
||||
) callconv(.winapi) ?HMODULE;
|
||||
|
||||
pub extern "kernel32" fn Module32First(
|
||||
hSnapshot: HANDLE,
|
||||
lpme: *MODULEENTRY32,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn Module32Next(
|
||||
hSnapshot: HANDLE,
|
||||
lpme: *MODULEENTRY32,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "kernel32" fn LoadLibraryW(
|
||||
lpLibFileName: LPCWSTR,
|
||||
) callconv(WINAPI) ?HMODULE;
|
||||
) callconv(.winapi) ?HMODULE;
|
||||
|
||||
pub extern "kernel32" fn LoadLibraryExW(
|
||||
lpLibFileName: LPCWSTR,
|
||||
hFile: ?HANDLE,
|
||||
dwFlags: DWORD,
|
||||
) callconv(WINAPI) ?HMODULE;
|
||||
) callconv(.winapi) ?HMODULE;
|
||||
|
||||
pub extern "kernel32" fn GetProcAddress(
|
||||
hModule: HMODULE,
|
||||
lpProcName: LPCSTR,
|
||||
) callconv(WINAPI) ?FARPROC;
|
||||
) callconv(.winapi) ?FARPROC;
|
||||
|
||||
pub extern "kernel32" fn FreeLibrary(
|
||||
hModule: HMODULE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
// Error Management
|
||||
|
||||
@ -653,15 +652,15 @@ pub extern "kernel32" fn FormatMessageW(
|
||||
lpBuffer: LPWSTR,
|
||||
nSize: DWORD,
|
||||
Arguments: ?*va_list,
|
||||
) callconv(WINAPI) DWORD;
|
||||
) callconv(.winapi) DWORD;
|
||||
|
||||
// TODO: Getter for teb().LastErrorValue.
|
||||
pub extern "kernel32" fn GetLastError() callconv(WINAPI) Win32Error;
|
||||
pub extern "kernel32" fn GetLastError() callconv(.winapi) Win32Error;
|
||||
|
||||
// TODO: Wrapper around RtlSetLastWin32Error.
|
||||
pub extern "kernel32" fn SetLastError(
|
||||
dwErrCode: Win32Error,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
// Everything Else
|
||||
|
||||
@ -670,4 +669,4 @@ pub extern "kernel32" fn SetLastError(
|
||||
// Much better to use NtQuerySystemTime or NtQuerySystemTimePrecise for guaranteed 0.1ns precision.
|
||||
pub extern "kernel32" fn GetSystemTimeAsFileTime(
|
||||
lpSystemTimeAsFileTime: *FILETIME,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
@ -5,7 +5,6 @@ const BOOL = windows.BOOL;
|
||||
const DWORD = windows.DWORD;
|
||||
const DWORD64 = windows.DWORD64;
|
||||
const ULONG = windows.ULONG;
|
||||
const WINAPI = windows.WINAPI;
|
||||
const NTSTATUS = windows.NTSTATUS;
|
||||
const WORD = windows.WORD;
|
||||
const HANDLE = windows.HANDLE;
|
||||
@ -44,7 +43,7 @@ pub extern "ntdll" fn NtQueryInformationProcess(
|
||||
ProcessInformation: *anyopaque,
|
||||
ProcessInformationLength: ULONG,
|
||||
ReturnLength: ?*ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtQueryInformationThread(
|
||||
ThreadHandle: HANDLE,
|
||||
@ -52,37 +51,37 @@ pub extern "ntdll" fn NtQueryInformationThread(
|
||||
ThreadInformation: *anyopaque,
|
||||
ThreadInformationLength: ULONG,
|
||||
ReturnLength: ?*ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtQuerySystemInformation(
|
||||
SystemInformationClass: SYSTEM_INFORMATION_CLASS,
|
||||
SystemInformation: PVOID,
|
||||
SystemInformationLength: ULONG,
|
||||
ReturnLength: ?*ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtSetInformationThread(
|
||||
ThreadHandle: HANDLE,
|
||||
ThreadInformationClass: THREADINFOCLASS,
|
||||
ThreadInformation: *const anyopaque,
|
||||
ThreadInformationLength: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlGetVersion(
|
||||
lpVersionInformation: *RTL_OSVERSIONINFOW,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn RtlCaptureStackBackTrace(
|
||||
FramesToSkip: DWORD,
|
||||
FramesToCapture: DWORD,
|
||||
BackTrace: **anyopaque,
|
||||
BackTraceHash: ?*DWORD,
|
||||
) callconv(WINAPI) WORD;
|
||||
pub extern "ntdll" fn RtlCaptureContext(ContextRecord: *CONTEXT) callconv(WINAPI) void;
|
||||
) callconv(.winapi) WORD;
|
||||
pub extern "ntdll" fn RtlCaptureContext(ContextRecord: *CONTEXT) callconv(.winapi) void;
|
||||
pub extern "ntdll" fn RtlLookupFunctionEntry(
|
||||
ControlPc: DWORD64,
|
||||
ImageBase: *DWORD64,
|
||||
HistoryTable: *UNWIND_HISTORY_TABLE,
|
||||
) callconv(WINAPI) ?*RUNTIME_FUNCTION;
|
||||
) callconv(.winapi) ?*RUNTIME_FUNCTION;
|
||||
pub extern "ntdll" fn RtlVirtualUnwind(
|
||||
HandlerType: DWORD,
|
||||
ImageBase: DWORD64,
|
||||
@ -92,33 +91,33 @@ pub extern "ntdll" fn RtlVirtualUnwind(
|
||||
HandlerData: *?PVOID,
|
||||
EstablisherFrame: *DWORD64,
|
||||
ContextPointers: ?*KNONVOLATILE_CONTEXT_POINTERS,
|
||||
) callconv(WINAPI) *EXCEPTION_ROUTINE;
|
||||
) callconv(.winapi) *EXCEPTION_ROUTINE;
|
||||
pub extern "ntdll" fn NtQueryInformationFile(
|
||||
FileHandle: HANDLE,
|
||||
IoStatusBlock: *IO_STATUS_BLOCK,
|
||||
FileInformation: *anyopaque,
|
||||
Length: ULONG,
|
||||
FileInformationClass: FILE_INFORMATION_CLASS,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtSetInformationFile(
|
||||
FileHandle: HANDLE,
|
||||
IoStatusBlock: *IO_STATUS_BLOCK,
|
||||
FileInformation: PVOID,
|
||||
Length: ULONG,
|
||||
FileInformationClass: FILE_INFORMATION_CLASS,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtQueryAttributesFile(
|
||||
ObjectAttributes: *OBJECT_ATTRIBUTES,
|
||||
FileAttributes: *FILE_BASIC_INFORMATION,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlQueryPerformanceCounter(PerformanceCounter: *LARGE_INTEGER) callconv(WINAPI) BOOL;
|
||||
pub extern "ntdll" fn RtlQueryPerformanceFrequency(PerformanceFrequency: *LARGE_INTEGER) callconv(WINAPI) BOOL;
|
||||
pub extern "ntdll" fn RtlQueryPerformanceCounter(PerformanceCounter: *LARGE_INTEGER) callconv(.winapi) BOOL;
|
||||
pub extern "ntdll" fn RtlQueryPerformanceFrequency(PerformanceFrequency: *LARGE_INTEGER) callconv(.winapi) BOOL;
|
||||
pub extern "ntdll" fn NtQueryPerformanceCounter(
|
||||
PerformanceCounter: *LARGE_INTEGER,
|
||||
PerformanceFrequency: ?*LARGE_INTEGER,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtCreateFile(
|
||||
FileHandle: *HANDLE,
|
||||
@ -132,7 +131,7 @@ pub extern "ntdll" fn NtCreateFile(
|
||||
CreateOptions: ULONG,
|
||||
EaBuffer: ?*anyopaque,
|
||||
EaLength: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtCreateSection(
|
||||
SectionHandle: *HANDLE,
|
||||
DesiredAccess: ACCESS_MASK,
|
||||
@ -141,7 +140,7 @@ pub extern "ntdll" fn NtCreateSection(
|
||||
SectionPageProtection: ULONG,
|
||||
AllocationAttributes: ULONG,
|
||||
FileHandle: ?HANDLE,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtMapViewOfSection(
|
||||
SectionHandle: HANDLE,
|
||||
ProcessHandle: HANDLE,
|
||||
@ -153,11 +152,11 @@ pub extern "ntdll" fn NtMapViewOfSection(
|
||||
InheritDispostion: SECTION_INHERIT,
|
||||
AllocationType: ULONG,
|
||||
Win32Protect: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtUnmapViewOfSection(
|
||||
ProcessHandle: HANDLE,
|
||||
BaseAddress: PVOID,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtDeviceIoControlFile(
|
||||
FileHandle: HANDLE,
|
||||
Event: ?HANDLE,
|
||||
@ -169,7 +168,7 @@ pub extern "ntdll" fn NtDeviceIoControlFile(
|
||||
InputBufferLength: ULONG,
|
||||
OutputBuffer: ?PVOID,
|
||||
OutputBufferLength: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtFsControlFile(
|
||||
FileHandle: HANDLE,
|
||||
Event: ?HANDLE,
|
||||
@ -181,15 +180,15 @@ pub extern "ntdll" fn NtFsControlFile(
|
||||
InputBufferLength: ULONG,
|
||||
OutputBuffer: ?PVOID,
|
||||
OutputBufferLength: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
pub extern "ntdll" fn NtClose(Handle: HANDLE) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn NtClose(Handle: HANDLE) callconv(.winapi) NTSTATUS;
|
||||
pub extern "ntdll" fn RtlDosPathNameToNtPathName_U(
|
||||
DosPathName: [*:0]const u16,
|
||||
NtPathName: *UNICODE_STRING,
|
||||
NtFileNamePart: ?*?[*:0]const u16,
|
||||
DirectoryInfo: ?*CURDIR,
|
||||
) callconv(WINAPI) BOOL;
|
||||
pub extern "ntdll" fn RtlFreeUnicodeString(UnicodeString: *UNICODE_STRING) callconv(WINAPI) void;
|
||||
) callconv(.winapi) BOOL;
|
||||
pub extern "ntdll" fn RtlFreeUnicodeString(UnicodeString: *UNICODE_STRING) callconv(.winapi) void;
|
||||
|
||||
/// Returns the number of bytes written to `Buffer`.
|
||||
/// If the returned count is larger than `BufferByteLength`, the buffer was too small.
|
||||
@ -199,7 +198,7 @@ pub extern "ntdll" fn RtlGetFullPathName_U(
|
||||
BufferByteLength: ULONG,
|
||||
Buffer: [*]u16,
|
||||
ShortName: ?*[*:0]const u16,
|
||||
) callconv(windows.WINAPI) windows.ULONG;
|
||||
) callconv(.winapi) windows.ULONG;
|
||||
|
||||
pub extern "ntdll" fn NtQueryDirectoryFile(
|
||||
FileHandle: HANDLE,
|
||||
@ -213,30 +212,30 @@ pub extern "ntdll" fn NtQueryDirectoryFile(
|
||||
ReturnSingleEntry: BOOLEAN,
|
||||
FileName: ?*UNICODE_STRING,
|
||||
RestartScan: BOOLEAN,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtCreateKeyedEvent(
|
||||
KeyedEventHandle: *HANDLE,
|
||||
DesiredAccess: ACCESS_MASK,
|
||||
ObjectAttributes: ?PVOID,
|
||||
Flags: ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtReleaseKeyedEvent(
|
||||
EventHandle: ?HANDLE,
|
||||
Key: ?*const anyopaque,
|
||||
Alertable: BOOLEAN,
|
||||
Timeout: ?*const LARGE_INTEGER,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtWaitForKeyedEvent(
|
||||
EventHandle: ?HANDLE,
|
||||
Key: ?*const anyopaque,
|
||||
Alertable: BOOLEAN,
|
||||
Timeout: ?*const LARGE_INTEGER,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlSetCurrentDirectory_U(PathName: *UNICODE_STRING) callconv(WINAPI) NTSTATUS;
|
||||
pub extern "ntdll" fn RtlSetCurrentDirectory_U(PathName: *UNICODE_STRING) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtQueryObject(
|
||||
Handle: HANDLE,
|
||||
@ -244,7 +243,7 @@ pub extern "ntdll" fn NtQueryObject(
|
||||
ObjectInformation: PVOID,
|
||||
ObjectInformationLength: ULONG,
|
||||
ReturnLength: ?*ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtQueryVolumeInformationFile(
|
||||
FileHandle: HANDLE,
|
||||
@ -252,32 +251,32 @@ pub extern "ntdll" fn NtQueryVolumeInformationFile(
|
||||
FsInformation: *anyopaque,
|
||||
Length: ULONG,
|
||||
FsInformationClass: FS_INFORMATION_CLASS,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlWakeAddressAll(
|
||||
Address: ?*const anyopaque,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "ntdll" fn RtlWakeAddressSingle(
|
||||
Address: ?*const anyopaque,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "ntdll" fn RtlWaitOnAddress(
|
||||
Address: ?*const anyopaque,
|
||||
CompareAddress: ?*const anyopaque,
|
||||
AddressSize: SIZE_T,
|
||||
Timeout: ?*const LARGE_INTEGER,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlEqualUnicodeString(
|
||||
String1: *const UNICODE_STRING,
|
||||
String2: *const UNICODE_STRING,
|
||||
CaseInSensitive: BOOLEAN,
|
||||
) callconv(WINAPI) BOOLEAN;
|
||||
) callconv(.winapi) BOOLEAN;
|
||||
|
||||
pub extern "ntdll" fn RtlUpcaseUnicodeChar(
|
||||
SourceCharacter: u16,
|
||||
) callconv(WINAPI) u16;
|
||||
) callconv(.winapi) u16;
|
||||
|
||||
pub extern "ntdll" fn NtLockFile(
|
||||
FileHandle: HANDLE,
|
||||
@ -290,7 +289,7 @@ pub extern "ntdll" fn NtLockFile(
|
||||
Key: ?*ULONG,
|
||||
FailImmediately: BOOLEAN,
|
||||
ExclusiveLock: BOOLEAN,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtUnlockFile(
|
||||
FileHandle: HANDLE,
|
||||
@ -298,13 +297,13 @@ pub extern "ntdll" fn NtUnlockFile(
|
||||
ByteOffset: *const LARGE_INTEGER,
|
||||
Length: *const LARGE_INTEGER,
|
||||
Key: ?*ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtOpenKey(
|
||||
KeyHandle: *HANDLE,
|
||||
DesiredAccess: ACCESS_MASK,
|
||||
ObjectAttributes: OBJECT_ATTRIBUTES,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlQueryRegistryValues(
|
||||
RelativeTo: ULONG,
|
||||
@ -312,7 +311,7 @@ pub extern "ntdll" fn RtlQueryRegistryValues(
|
||||
QueryTable: [*]RTL_QUERY_REGISTRY_TABLE,
|
||||
Context: ?*anyopaque,
|
||||
Environment: ?*anyopaque,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtReadVirtualMemory(
|
||||
ProcessHandle: HANDLE,
|
||||
@ -320,7 +319,7 @@ pub extern "ntdll" fn NtReadVirtualMemory(
|
||||
Buffer: LPVOID,
|
||||
NumberOfBytesToRead: SIZE_T,
|
||||
NumberOfBytesRead: ?*SIZE_T,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtWriteVirtualMemory(
|
||||
ProcessHandle: HANDLE,
|
||||
@ -328,7 +327,7 @@ pub extern "ntdll" fn NtWriteVirtualMemory(
|
||||
Buffer: LPCVOID,
|
||||
NumberOfBytesToWrite: SIZE_T,
|
||||
NumberOfBytesWritten: ?*SIZE_T,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn NtProtectVirtualMemory(
|
||||
ProcessHandle: HANDLE,
|
||||
@ -336,11 +335,11 @@ pub extern "ntdll" fn NtProtectVirtualMemory(
|
||||
NumberOfBytesToProtect: *SIZE_T,
|
||||
NewAccessProtection: ULONG,
|
||||
OldAccessProtection: *ULONG,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
pub extern "ntdll" fn RtlExitUserProcess(
|
||||
ExitStatus: u32,
|
||||
) callconv(WINAPI) noreturn;
|
||||
) callconv(.winapi) noreturn;
|
||||
|
||||
pub extern "ntdll" fn NtCreateNamedPipeFile(
|
||||
FileHandle: *HANDLE,
|
||||
@ -357,4 +356,4 @@ pub extern "ntdll" fn NtCreateNamedPipeFile(
|
||||
InboundQuota: ULONG,
|
||||
OutboundQuota: ULONG,
|
||||
DefaultTimeout: *LARGE_INTEGER,
|
||||
) callconv(WINAPI) NTSTATUS;
|
||||
) callconv(.winapi) NTSTATUS;
|
||||
|
||||
@ -250,7 +250,7 @@ test "loadWinsockExtensionFunction" {
|
||||
SendBufLen: windows.DWORD,
|
||||
BytesSent: *windows.DWORD,
|
||||
Overlapped: *windows.OVERLAPPED,
|
||||
) callconv(windows.WINAPI) windows.BOOL;
|
||||
) callconv(.winapi) windows.BOOL;
|
||||
|
||||
_ = windows.loadWinsockExtensionFunction(
|
||||
LPFN_CONNECTEX,
|
||||
|
||||
@ -2,7 +2,6 @@ const std = @import("../../std.zig");
|
||||
const assert = std.debug.assert;
|
||||
const windows = std.os.windows;
|
||||
|
||||
const WINAPI = windows.WINAPI;
|
||||
const OVERLAPPED = windows.OVERLAPPED;
|
||||
const WORD = windows.WORD;
|
||||
const DWORD = windows.DWORD;
|
||||
@ -958,14 +957,14 @@ pub const LPCONDITIONPROC = *const fn (
|
||||
lpCalleeData: *WSABUF,
|
||||
g: *u32,
|
||||
dwCallbackData: usize,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub const LPWSAOVERLAPPED_COMPLETION_ROUTINE = *const fn (
|
||||
dwError: u32,
|
||||
cbTransferred: u32,
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
dwFlags: u32,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub const FLOWSPEC = extern struct {
|
||||
TokenRate: u32,
|
||||
@ -1196,7 +1195,7 @@ pub const LPFN_TRANSMITFILE = *const fn (
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpTransmitBuffers: ?*TRANSMIT_FILE_BUFFERS,
|
||||
dwReserved: u32,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub const LPFN_ACCEPTEX = *const fn (
|
||||
sListenSocket: SOCKET,
|
||||
@ -1207,7 +1206,7 @@ pub const LPFN_ACCEPTEX = *const fn (
|
||||
dwRemoteAddressLength: u32,
|
||||
lpdwBytesReceived: *u32,
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub const LPFN_GETACCEPTEXSOCKADDRS = *const fn (
|
||||
lpOutputBuffer: *anyopaque,
|
||||
@ -1218,7 +1217,7 @@ pub const LPFN_GETACCEPTEXSOCKADDRS = *const fn (
|
||||
LocalSockaddrLength: *i32,
|
||||
RemoteSockaddr: **sockaddr,
|
||||
RemoteSockaddrLength: *i32,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub const LPFN_WSASENDMSG = *const fn (
|
||||
s: SOCKET,
|
||||
@ -1227,7 +1226,7 @@ pub const LPFN_WSASENDMSG = *const fn (
|
||||
lpNumberOfBytesSent: ?*u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub const LPFN_WSARECVMSG = *const fn (
|
||||
s: SOCKET,
|
||||
@ -1235,12 +1234,12 @@ pub const LPFN_WSARECVMSG = *const fn (
|
||||
lpdwNumberOfBytesRecv: ?*u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub const LPSERVICE_CALLBACK_PROC = *const fn (
|
||||
lParam: LPARAM,
|
||||
hAsyncTaskHandle: HANDLE,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub const SERVICE_ASYNC_INFO = extern struct {
|
||||
lpServiceCallbackProc: LPSERVICE_CALLBACK_PROC,
|
||||
@ -1252,7 +1251,7 @@ pub const LPLOOKUPSERVICE_COMPLETION_ROUTINE = *const fn (
|
||||
dwError: u32,
|
||||
dwBytes: u32,
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub const fd_set = extern struct {
|
||||
fd_count: u32,
|
||||
@ -1725,41 +1724,41 @@ pub extern "ws2_32" fn accept(
|
||||
s: SOCKET,
|
||||
addr: ?*sockaddr,
|
||||
addrlen: ?*i32,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn bind(
|
||||
s: SOCKET,
|
||||
name: *const sockaddr,
|
||||
namelen: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn closesocket(
|
||||
s: SOCKET,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn connect(
|
||||
s: SOCKET,
|
||||
name: *const sockaddr,
|
||||
namelen: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn ioctlsocket(
|
||||
s: SOCKET,
|
||||
cmd: i32,
|
||||
argp: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn getpeername(
|
||||
s: SOCKET,
|
||||
name: *sockaddr,
|
||||
namelen: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn getsockname(
|
||||
s: SOCKET,
|
||||
name: *sockaddr,
|
||||
namelen: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn getsockopt(
|
||||
s: SOCKET,
|
||||
@ -1767,39 +1766,39 @@ pub extern "ws2_32" fn getsockopt(
|
||||
optname: i32,
|
||||
optval: [*]u8,
|
||||
optlen: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn htonl(
|
||||
hostlong: u32,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
pub extern "ws2_32" fn htons(
|
||||
hostshort: u16,
|
||||
) callconv(WINAPI) u16;
|
||||
) callconv(.winapi) u16;
|
||||
|
||||
pub extern "ws2_32" fn inet_addr(
|
||||
cp: ?[*]const u8,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
pub extern "ws2_32" fn listen(
|
||||
s: SOCKET,
|
||||
backlog: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn ntohl(
|
||||
netlong: u32,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
pub extern "ws2_32" fn ntohs(
|
||||
netshort: u16,
|
||||
) callconv(WINAPI) u16;
|
||||
) callconv(.winapi) u16;
|
||||
|
||||
pub extern "ws2_32" fn recv(
|
||||
s: SOCKET,
|
||||
buf: [*]u8,
|
||||
len: i32,
|
||||
flags: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn recvfrom(
|
||||
s: SOCKET,
|
||||
@ -1808,7 +1807,7 @@ pub extern "ws2_32" fn recvfrom(
|
||||
flags: i32,
|
||||
from: ?*sockaddr,
|
||||
fromlen: ?*i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn select(
|
||||
nfds: i32,
|
||||
@ -1816,14 +1815,14 @@ pub extern "ws2_32" fn select(
|
||||
writefds: ?*fd_set,
|
||||
exceptfds: ?*fd_set,
|
||||
timeout: ?*const timeval,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn send(
|
||||
s: SOCKET,
|
||||
buf: [*]const u8,
|
||||
len: i32,
|
||||
flags: u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn sendto(
|
||||
s: SOCKET,
|
||||
@ -1832,7 +1831,7 @@ pub extern "ws2_32" fn sendto(
|
||||
flags: i32,
|
||||
to: *const sockaddr,
|
||||
tolen: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn setsockopt(
|
||||
s: SOCKET,
|
||||
@ -1840,37 +1839,37 @@ pub extern "ws2_32" fn setsockopt(
|
||||
optname: i32,
|
||||
optval: ?[*]const u8,
|
||||
optlen: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn shutdown(
|
||||
s: SOCKET,
|
||||
how: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn socket(
|
||||
af: i32,
|
||||
@"type": i32,
|
||||
protocol: i32,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn WSAStartup(
|
||||
wVersionRequired: WORD,
|
||||
lpWSAData: *WSADATA,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSACleanup() callconv(WINAPI) i32;
|
||||
pub extern "ws2_32" fn WSACleanup() callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASetLastError(iError: i32) callconv(WINAPI) void;
|
||||
pub extern "ws2_32" fn WSASetLastError(iError: i32) callconv(.winapi) void;
|
||||
|
||||
pub extern "ws2_32" fn WSAGetLastError() callconv(WINAPI) WinsockError;
|
||||
pub extern "ws2_32" fn WSAGetLastError() callconv(.winapi) WinsockError;
|
||||
|
||||
pub extern "ws2_32" fn WSAIsBlocking() callconv(WINAPI) BOOL;
|
||||
pub extern "ws2_32" fn WSAIsBlocking() callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAUnhookBlockingHook() callconv(WINAPI) i32;
|
||||
pub extern "ws2_32" fn WSAUnhookBlockingHook() callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASetBlockingHook(lpBlockFunc: FARPROC) callconv(WINAPI) FARPROC;
|
||||
pub extern "ws2_32" fn WSASetBlockingHook(lpBlockFunc: FARPROC) callconv(.winapi) FARPROC;
|
||||
|
||||
pub extern "ws2_32" fn WSACancelBlockingCall() callconv(WINAPI) i32;
|
||||
pub extern "ws2_32" fn WSACancelBlockingCall() callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAAsyncGetServByName(
|
||||
hWnd: HWND,
|
||||
@ -1879,7 +1878,7 @@ pub extern "ws2_32" fn WSAAsyncGetServByName(
|
||||
proto: ?[*:0]const u8,
|
||||
buf: [*]u8,
|
||||
buflen: i32,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "ws2_32" fn WSAAsyncGetServByPort(
|
||||
hWnd: HWND,
|
||||
@ -1888,7 +1887,7 @@ pub extern "ws2_32" fn WSAAsyncGetServByPort(
|
||||
proto: ?[*:0]const u8,
|
||||
buf: [*]u8,
|
||||
buflen: i32,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "ws2_32" fn WSAAsyncGetProtoByName(
|
||||
hWnd: HWND,
|
||||
@ -1896,7 +1895,7 @@ pub extern "ws2_32" fn WSAAsyncGetProtoByName(
|
||||
name: [*:0]const u8,
|
||||
buf: [*]u8,
|
||||
buflen: i32,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "ws2_32" fn WSAAsyncGetProtoByNumber(
|
||||
hWnd: HWND,
|
||||
@ -1904,16 +1903,16 @@ pub extern "ws2_32" fn WSAAsyncGetProtoByNumber(
|
||||
number: i32,
|
||||
buf: [*]u8,
|
||||
buflen: i32,
|
||||
) callconv(WINAPI) HANDLE;
|
||||
) callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "ws2_32" fn WSACancelAsyncRequest(hAsyncTaskHandle: HANDLE) callconv(WINAPI) i32;
|
||||
pub extern "ws2_32" fn WSACancelAsyncRequest(hAsyncTaskHandle: HANDLE) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAAsyncSelect(
|
||||
s: SOCKET,
|
||||
hWnd: HWND,
|
||||
wMsg: u32,
|
||||
lEvent: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAAccept(
|
||||
s: SOCKET,
|
||||
@ -1921,9 +1920,9 @@ pub extern "ws2_32" fn WSAAccept(
|
||||
addrlen: ?*i32,
|
||||
lpfnCondition: ?LPCONDITIONPROC,
|
||||
dwCallbackData: usize,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn WSACloseEvent(hEvent: HANDLE) callconv(WINAPI) BOOL;
|
||||
pub extern "ws2_32" fn WSACloseEvent(hEvent: HANDLE) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAConnect(
|
||||
s: SOCKET,
|
||||
@ -1933,7 +1932,7 @@ pub extern "ws2_32" fn WSAConnect(
|
||||
lpCalleeData: ?*WSABUF,
|
||||
lpSQOS: ?*QOS,
|
||||
lpGQOS: ?*QOS,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAConnectByNameW(
|
||||
s: SOCKET,
|
||||
@ -1945,7 +1944,7 @@ pub extern "ws2_32" fn WSAConnectByNameW(
|
||||
RemoteAddress: ?*sockaddr,
|
||||
timeout: ?*const timeval,
|
||||
Reserved: *OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAConnectByNameA(
|
||||
s: SOCKET,
|
||||
@ -1957,7 +1956,7 @@ pub extern "ws2_32" fn WSAConnectByNameA(
|
||||
RemoteAddress: ?*sockaddr,
|
||||
timeout: ?*const timeval,
|
||||
Reserved: *OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAConnectByList(
|
||||
s: SOCKET,
|
||||
@ -1968,45 +1967,45 @@ pub extern "ws2_32" fn WSAConnectByList(
|
||||
RemoteAddress: ?*sockaddr,
|
||||
timeout: ?*const timeval,
|
||||
Reserved: *OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSACreateEvent() callconv(WINAPI) HANDLE;
|
||||
pub extern "ws2_32" fn WSACreateEvent() callconv(.winapi) HANDLE;
|
||||
|
||||
pub extern "ws2_32" fn WSADuplicateSocketA(
|
||||
s: SOCKET,
|
||||
dwProcessId: u32,
|
||||
lpProtocolInfo: *WSAPROTOCOL_INFOA,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSADuplicateSocketW(
|
||||
s: SOCKET,
|
||||
dwProcessId: u32,
|
||||
lpProtocolInfo: *WSAPROTOCOL_INFOW,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAEnumNetworkEvents(
|
||||
s: SOCKET,
|
||||
hEventObject: HANDLE,
|
||||
lpNetworkEvents: *WSANETWORKEVENTS,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAEnumProtocolsA(
|
||||
lpiProtocols: ?*i32,
|
||||
lpProtocolBuffer: ?*WSAPROTOCOL_INFOA,
|
||||
lpdwBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAEnumProtocolsW(
|
||||
lpiProtocols: ?*i32,
|
||||
lpProtocolBuffer: ?*WSAPROTOCOL_INFOW,
|
||||
lpdwBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAEventSelect(
|
||||
s: SOCKET,
|
||||
hEventObject: HANDLE,
|
||||
lNetworkEvents: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAGetOverlappedResult(
|
||||
s: SOCKET,
|
||||
@ -2014,25 +2013,25 @@ pub extern "ws2_32" fn WSAGetOverlappedResult(
|
||||
lpcbTransfer: *u32,
|
||||
fWait: BOOL,
|
||||
lpdwFlags: *u32,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAGetQOSByName(
|
||||
s: SOCKET,
|
||||
lpQOSName: *WSABUF,
|
||||
lpQOS: *QOS,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSAHtonl(
|
||||
s: SOCKET,
|
||||
hostlong: u32,
|
||||
lpnetlong: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAHtons(
|
||||
s: SOCKET,
|
||||
hostshort: u16,
|
||||
lpnetshort: *u16,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAIoctl(
|
||||
s: SOCKET,
|
||||
@ -2044,7 +2043,7 @@ pub extern "ws2_32" fn WSAIoctl(
|
||||
lpcbBytesReturned: *u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAJoinLeaf(
|
||||
s: SOCKET,
|
||||
@ -2055,19 +2054,19 @@ pub extern "ws2_32" fn WSAJoinLeaf(
|
||||
lpSQOS: ?*QOS,
|
||||
lpGQOS: ?*QOS,
|
||||
dwFlags: u32,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn WSANtohl(
|
||||
s: SOCKET,
|
||||
netlong: u32,
|
||||
lphostlong: *u32,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
pub extern "ws2_32" fn WSANtohs(
|
||||
s: SOCKET,
|
||||
netshort: u16,
|
||||
lphostshort: *u16,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSARecv(
|
||||
s: SOCKET,
|
||||
@ -2077,12 +2076,12 @@ pub extern "ws2_32" fn WSARecv(
|
||||
lpFlags: *u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSARecvDisconnect(
|
||||
s: SOCKET,
|
||||
lpInboundDisconnectData: ?*WSABUF,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSARecvFrom(
|
||||
s: SOCKET,
|
||||
@ -2094,9 +2093,9 @@ pub extern "ws2_32" fn WSARecvFrom(
|
||||
lpFromlen: ?*i32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAResetEvent(hEvent: HANDLE) callconv(WINAPI) i32;
|
||||
pub extern "ws2_32" fn WSAResetEvent(hEvent: HANDLE) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASend(
|
||||
s: SOCKET,
|
||||
@ -2106,7 +2105,7 @@ pub extern "ws2_32" fn WSASend(
|
||||
dwFlags: u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASendMsg(
|
||||
s: SOCKET,
|
||||
@ -2115,7 +2114,7 @@ pub extern "ws2_32" fn WSASendMsg(
|
||||
lpNumberOfBytesSent: ?*u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSARecvMsg(
|
||||
s: SOCKET,
|
||||
@ -2123,12 +2122,12 @@ pub extern "ws2_32" fn WSARecvMsg(
|
||||
lpdwNumberOfBytesRecv: ?*u32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASendDisconnect(
|
||||
s: SOCKET,
|
||||
lpOutboundDisconnectData: ?*WSABUF,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASendTo(
|
||||
s: SOCKET,
|
||||
@ -2140,11 +2139,11 @@ pub extern "ws2_32" fn WSASendTo(
|
||||
iToLen: i32,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRounte: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSASetEvent(
|
||||
hEvent: HANDLE,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "ws2_32" fn WSASocketA(
|
||||
af: i32,
|
||||
@ -2153,7 +2152,7 @@ pub extern "ws2_32" fn WSASocketA(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOA,
|
||||
g: u32,
|
||||
dwFlags: u32,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn WSASocketW(
|
||||
af: i32,
|
||||
@ -2162,7 +2161,7 @@ pub extern "ws2_32" fn WSASocketW(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOW,
|
||||
g: u32,
|
||||
dwFlags: u32,
|
||||
) callconv(WINAPI) SOCKET;
|
||||
) callconv(.winapi) SOCKET;
|
||||
|
||||
pub extern "ws2_32" fn WSAWaitForMultipleEvents(
|
||||
cEvents: u32,
|
||||
@ -2170,7 +2169,7 @@ pub extern "ws2_32" fn WSAWaitForMultipleEvents(
|
||||
fWaitAll: BOOL,
|
||||
dwTimeout: u32,
|
||||
fAlertable: BOOL,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
pub extern "ws2_32" fn WSAAddressToStringA(
|
||||
lpsaAddress: *sockaddr,
|
||||
@ -2178,7 +2177,7 @@ pub extern "ws2_32" fn WSAAddressToStringA(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOA,
|
||||
lpszAddressString: [*]u8,
|
||||
lpdwAddressStringLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAAddressToStringW(
|
||||
lpsaAddress: *sockaddr,
|
||||
@ -2186,7 +2185,7 @@ pub extern "ws2_32" fn WSAAddressToStringW(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOW,
|
||||
lpszAddressString: [*]u16,
|
||||
lpdwAddressStringLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAStringToAddressA(
|
||||
AddressString: [*:0]const u8,
|
||||
@ -2194,7 +2193,7 @@ pub extern "ws2_32" fn WSAStringToAddressA(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOA,
|
||||
lpAddress: *sockaddr,
|
||||
lpAddressLength: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAStringToAddressW(
|
||||
AddressString: [*:0]const u16,
|
||||
@ -2202,26 +2201,26 @@ pub extern "ws2_32" fn WSAStringToAddressW(
|
||||
lpProtocolInfo: ?*WSAPROTOCOL_INFOW,
|
||||
lpAddrses: *sockaddr,
|
||||
lpAddressLength: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAProviderConfigChange(
|
||||
lpNotificationHandle: *HANDLE,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn WSAPoll(
|
||||
fdArray: [*]WSAPOLLFD,
|
||||
fds: u32,
|
||||
timeout: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn WSARecvEx(
|
||||
s: SOCKET,
|
||||
buf: [*]u8,
|
||||
len: i32,
|
||||
flags: *i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn TransmitFile(
|
||||
hSocket: SOCKET,
|
||||
@ -2231,7 +2230,7 @@ pub extern "mswsock" fn TransmitFile(
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpTransmitBuffers: ?*TRANSMIT_FILE_BUFFERS,
|
||||
dwReserved: u32,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "mswsock" fn AcceptEx(
|
||||
sListenSocket: SOCKET,
|
||||
@ -2242,7 +2241,7 @@ pub extern "mswsock" fn AcceptEx(
|
||||
dwRemoteAddressLength: u32,
|
||||
lpdwBytesReceived: *u32,
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
) callconv(WINAPI) BOOL;
|
||||
) callconv(.winapi) BOOL;
|
||||
|
||||
pub extern "mswsock" fn GetAcceptExSockaddrs(
|
||||
lpOutputBuffer: *anyopaque,
|
||||
@ -2253,24 +2252,24 @@ pub extern "mswsock" fn GetAcceptExSockaddrs(
|
||||
LocalSockaddrLength: *i32,
|
||||
RemoteSockaddr: **sockaddr,
|
||||
RemoteSockaddrLength: *i32,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "ws2_32" fn WSAProviderCompleteAsyncCall(
|
||||
hAsyncCall: HANDLE,
|
||||
iRetCode: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn EnumProtocolsA(
|
||||
lpiProtocols: ?*i32,
|
||||
lpProtocolBuffer: *anyopaque,
|
||||
lpdwBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn EnumProtocolsW(
|
||||
lpiProtocols: ?*i32,
|
||||
lpProtocolBuffer: *anyopaque,
|
||||
lpdwBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetAddressByNameA(
|
||||
dwNameSpace: u32,
|
||||
@ -2282,7 +2281,7 @@ pub extern "mswsock" fn GetAddressByNameA(
|
||||
lpCsaddrBuffer: *anyopaque,
|
||||
lpAliasBuffer: ?[*:0]const u8,
|
||||
lpdwAliasBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetAddressByNameW(
|
||||
dwNameSpace: u32,
|
||||
@ -2295,36 +2294,36 @@ pub extern "mswsock" fn GetAddressByNameW(
|
||||
ldwBufferLEngth: *u32,
|
||||
lpAliasBuffer: ?[*:0]u16,
|
||||
lpdwAliasBufferLength: *u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetTypeByNameA(
|
||||
lpServiceName: [*:0]u8,
|
||||
lpServiceType: *GUID,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetTypeByNameW(
|
||||
lpServiceName: [*:0]u16,
|
||||
lpServiceType: *GUID,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetNameByTypeA(
|
||||
lpServiceType: *GUID,
|
||||
lpServiceName: [*:0]u8,
|
||||
dwNameLength: u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "mswsock" fn GetNameByTypeW(
|
||||
lpServiceType: *GUID,
|
||||
lpServiceName: [*:0]u16,
|
||||
dwNameLength: u32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn getaddrinfo(
|
||||
pNodeName: ?[*:0]const u8,
|
||||
pServiceName: ?[*:0]const u8,
|
||||
pHints: ?*const addrinfoa,
|
||||
ppResult: *?*addrinfoa,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn GetAddrInfoExA(
|
||||
pName: ?[*:0]const u8,
|
||||
@ -2336,23 +2335,23 @@ pub extern "ws2_32" fn GetAddrInfoExA(
|
||||
timeout: ?*timeval,
|
||||
lpOverlapped: ?*OVERLAPPED,
|
||||
lpCompletionRoutine: ?LPLOOKUPSERVICE_COMPLETION_ROUTINE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn GetAddrInfoExCancel(
|
||||
lpHandle: *HANDLE,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn GetAddrInfoExOverlappedResult(
|
||||
lpOverlapped: *OVERLAPPED,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "ws2_32" fn freeaddrinfo(
|
||||
pAddrInfo: ?*addrinfoa,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "ws2_32" fn FreeAddrInfoEx(
|
||||
pAddrInfoEx: ?*addrinfoexA,
|
||||
) callconv(WINAPI) void;
|
||||
) callconv(.winapi) void;
|
||||
|
||||
pub extern "ws2_32" fn getnameinfo(
|
||||
pSockaddr: *const sockaddr,
|
||||
@ -2362,8 +2361,8 @@ pub extern "ws2_32" fn getnameinfo(
|
||||
pServiceBuffer: ?[*]u8,
|
||||
ServiceBufferName: u32,
|
||||
Flags: i32,
|
||||
) callconv(WINAPI) i32;
|
||||
) callconv(.winapi) i32;
|
||||
|
||||
pub extern "iphlpapi" fn if_nametoindex(
|
||||
InterfaceName: [*:0]const u8,
|
||||
) callconv(WINAPI) u32;
|
||||
) callconv(.winapi) u32;
|
||||
|
||||
@ -229,7 +229,7 @@ const WindowsSegfaultMessage = union(enum) {
|
||||
illegal_instruction: void,
|
||||
};
|
||||
|
||||
fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(windows.WINAPI) c_long {
|
||||
fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(.winapi) c_long {
|
||||
switch (info.ExceptionRecord.ExceptionCode) {
|
||||
windows.EXCEPTION_DATATYPE_MISALIGNMENT => handleSegfaultWindowsExtra(info, .{ .literal = "Unaligned Memory Access" }),
|
||||
windows.EXCEPTION_ACCESS_VIOLATION => handleSegfaultWindowsExtra(info, .segfault),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user