VirtualProtect 方法
当做对应之 Win32 函数的逻辑包装函数。VirtualProtect 的 Win32 实作会在呼叫处理序的虚拟位址空间里,变更认可页面区域上的保护。
BOOL WINAPI VirtualProtect( __in LPVOIDlpAddress, __in SIZE_TdwSize, __in DWORDflNewProtect, __out PDWORDlpflOldProtect);参数
lpAddress
[in] 指标,指向要变更保护属性的虚拟记忆体之基底位址。
dwSize
[in] 要变更的记忆体分页区域的大小 (以位元组计)。
flNewProtect
[in] 要套用的记忆体保护类型。
pflOldProtect
[out] 上一个记忆体保护值的指标。
传回值
HRESULT
描述
S_OK
VirtualProtect 已成功传回。
HOST_E_CLRNOTAVAILABLE
Common Language Runtime (CLR) 尚未载入至处理序中,或者此 CLR 目前的状态无法执行 Managed 程式码或成功处理呼叫。
HOST_E_TIMEOUT
呼叫已逾时。
HOST_E_NOT_OWNER
呼叫端不具备锁定功能。
HOST_E_ABANDONED
已封锁执行绪或 Fiber 在等候事件时,该事件已遭取消。
E_FAIL
发生未知的重大错误。当方法传回 E_FAIL 时,便无法在处理序内使用 CLR。对装载方法的後续呼叫会传回 HOST_E_CLRNOTAVAILABLE。
备注
这个 VirtualProtect 实作会传回 HRESULT 值,而 Win32 实作则会传回表示成功的非零值,以及表示失败的零值。如需详细资讯,请参阅 Windows 平台的说明文件。