Function ProcessBaseAddress [src]

Returns the base address of the process loaded into memory.

Prototype

pub fn ProcessBaseAddress(handle: HANDLE) ProcessBaseAddressError!HMODULE

Parameters

handle: HANDLE

Possible Errors

Source

pub fn ProcessBaseAddress(handle: HANDLE) ProcessBaseAddressError!HMODULE { var info: PROCESS_BASIC_INFORMATION = undefined; var nread: DWORD = 0; const rc = ntdll.NtQueryInformationProcess( handle, .ProcessBasicInformation, &info, @sizeOf(PROCESS_BASIC_INFORMATION), &nread, ); switch (rc) { .SUCCESS => {}, .ACCESS_DENIED => return error.AccessDenied, .INVALID_HANDLE => return error.InvalidHandle, .INVALID_PARAMETER => unreachable, else => return unexpectedStatus(rc), } var peb_buf: [@sizeOf(PEB)]u8 align(@alignOf(PEB)) = undefined; const peb_out = try ReadProcessMemory(handle, info.PebBaseAddress, &peb_buf); const ppeb: *const PEB = @ptrCast(@alignCast(peb_out.ptr)); return ppeb.ImageBaseAddress; }