ReadMultiByteStringVirtualWide 方法从目标读取以 null 结尾的多字节字符串并将其转换为 Unicode。
语法
HRESULT ReadMultiByteStringVirtualWide(
  [in]            ULONG64 Offset,
  [in]            ULONG   MaxBytes,
  [in]            ULONG   CodePage,
  [out, optional] PWSTR   Buffer,
  [in]            ULONG   BufferSize,
  [out, optional] PULONG  StringBytes
);
参数
[in] Offset
指定进程虚拟地址空间中字符串的位置。
[in] MaxBytes
指定要从目标读取的最大字节数。
[in] CodePage
指定用于将从目标读取的多字节字符串转换为 Unicode 字符串的代码页。 例如,CP_ACP是 ANSI 代码页。
[out, optional] Buffer
从目标接收字符串。 如果 缓冲区NULL,则不会返回此信息。
[in] BufferSize
指定 缓冲区 缓冲区的大小(以字符为单位)。
[out, optional] StringBytes
接收目标中字符串的大小(以字节为单位)。 如果 StringBytesNULL,则不会返回此信息。
返回值
| 返回代码 | 描述 | 
|---|---|
| 
 | 该方法成功。 | 
| 
 | 方法未成功。 | 
| 
 | 从目标读取 MaxBytes 后找不到 null 终止符。 | 
此方法还可以返回错误值。 有关详细信息,请参阅 返回值。
言论
引擎将从目标读取最多 maxBytes,查找 null 终止符。 如果字符串具有多个 BufferSize 字符,则字符串将被截断,以适应 Buffer。
请注意,即使返回S_OK,缓冲区可能不够大,无法存储字符串。 在这种情况下,字符串将被截断,以适应 Buffer。 如果 Buffer 至少有一个字符的空间,则截断字符串为 null 终止。 调用返回后,检查 *StringBytes 是否大于 BufferSize。
要求
| 要求 | 价值 | 
|---|---|
| 目标平台 | 桌面 | 
| 标头 | dbgeng.h (包括 Dbgeng.h、Winnls.h) |