Files
Viper_VRTE/w32/win32memory.vp
T
TermiNexus e71daeea0e docs(includes): R11 注释英文化——75 个文件的中文注释改写为英文短注释
按规范「注释只讲解作用,不掺杂历史原因,尽量英文」:把 includes 下 75 个 .vp 的中文 # 注释与三引号 docstring 改写为英文,每个注释块压到 2 行以内。

保留要点:作用、约束、危险警告(不得/必须/注意)、ABI 与类型约定(如 BYTEPTR | t.CPtr = i8** 的跨模块坍缩坑)、位宽/长度约定、fail-fast 要求、内存与句柄所有权。

未动:文件头注释(规范豁免,仍是中文)、运行时中文字符串常量(printf / fatal_error / MlirFail 等用户可见消息,属代码字面量)。

验证:独立脚本比对 HEAD 与工作区的代码骨架(剥离 # 注释与三引号 docstring 后的非空行)——75 个文件逐字节一致;行尾 CRLF/LF 未被改动;全文剩余中文仅 547 行头注释、0 条行尾注释。bootstrap 三重重编 SUCCESS;全量 77/77 顺序回归通过。
2026-10-05 16:18:44 +08:00

69 lines
3.1 KiB
Plaintext

import t
from stdint import *
from w32.win32base import *
define MEM_COMMIT = 0x00001000
define MEM_RESERVE = 0x00002000
define MEM_DECOMMIT = 0x00004000
define MEM_RELEASE = 0x00008000
define MEM_FREE = 0x00010000
define MEM_RESET = 0x00080000
define MEM_TOP_DOWN = 0x00100000
define MEM_WRITE_WATCH = 0x00200000
define MEM_PHYSICAL = 0x00400000
define MEM_LARGE_PAGES = 0x20000000
define PAGE_NOACCESS = 0x01
define PAGE_READONLY = 0x02
define PAGE_READWRITE = 0x04
define PAGE_WRITECOPY = 0x08
define PAGE_EXECUTE = 0x10
define PAGE_EXECUTE_READ = 0x20
define PAGE_EXECUTE_READWRITE = 0x40
define PAGE_EXECUTE_WRITECOPY = 0x80
define PAGE_GUARD = 0x100
define PAGE_NOCACHE = 0x200
define PAGE_WRITECOMBINE = 0x400
define HEAP_NO_SERIALIZE = 0x00000001
define HEAP_GROWABLE = 0x00000002
define HEAP_GENERATE_EXCEPTIONS = 0x00000004
define HEAP_ZERO_MEMORY = 0x00000008
define HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010
class MEMORY_BASIC_INFORMATION():
BaseAddress: VOIDPTR
AllocationBase: VOIDPTR
AllocationProtect: DWORD
RegionSize: sizet
State: DWORD
Protect: DWORD
Type: DWORD
extern def VirtualAlloc(lpAddress: VOIDPTR, dwSize: sizet, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR
extern def VirtualFree(lpAddress: VOIDPTR, dwSize: sizet, dwFreeType: ULONG) -> BOOL
extern def VirtualProtect(lpAddress: VOIDPTR, dwSize: sizet, flNewProtect: ULONG, lpflOldProtect: ULONG*) -> BOOL
extern def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION*, dwLength: sizet) -> sizet
extern def VirtualLock(lpAddress: VOIDPTR, dwSize: sizet) -> BOOL
extern def VirtualUnlock(lpAddress: VOIDPTR, dwSize: sizet) -> BOOL
extern def GetProcessHeap() -> HANDLE
extern def HeapCreate(flOptions: ULONG, dwInitialSize: sizet, dwMaximumSize: sizet) -> HANDLE
extern def HeapDestroy(hHeap: HANDLE) -> BOOL
extern def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: sizet) -> VOIDPTR
extern def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: sizet) -> VOIDPTR
extern def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL
extern def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> sizet
extern def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL
extern def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> sizet
extern def GlobalAlloc(uFlags: UINT, dwBytes: sizet) -> VOIDPTR
extern def GlobalFree(hMem: VOIDPTR) -> VOIDPTR
extern def GlobalLock(hMem: VOIDPTR) -> VOIDPTR
extern def GlobalUnlock(hMem: VOIDPTR) -> BOOL
extern def GlobalSize(hMem: VOIDPTR) -> sizet
extern def LocalAlloc(uFlags: UINT, dwBytes: sizet) -> VOIDPTR
extern def LocalFree(hMem: VOIDPTR) -> VOIDPTR
# Read memory (memoryapi.h / kernel32.dll): BOOL ReadProcessMemory(HANDLE, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesRead).
# Its signature matches dbghelp's PREAD_PROCESS_MEMORY_ROUTINE64 (the StackWalk64 callback slot); returns 0 on failure (see GetLastError).
extern def ReadProcessMemory(hProcess: HANDLE, lpBaseAddress: t.CConst | VOIDPTR, lpBuffer: VOIDPTR, nSize: sizet, lpNumberOfBytesRead: sizet*) -> BOOL