IDkmMemoryOperation.ReadMemoryString 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从目标进程进程的内存中读取以 null 结尾的字符串。 这可用于读取 ANSI 或 Unicode (UTF-8、UTF-16 或 UTF-32) 字符串。
public:
cli::array <System::Byte> ^ ReadMemoryString(Microsoft::VisualStudio::Debugger::DkmProcess ^ process, System::UInt64 address, Microsoft::VisualStudio::Debugger::DkmReadMemoryFlags flags, System::UInt16 characterSize, int maxCharacters);
public byte[] ReadMemoryString (Microsoft.VisualStudio.Debugger.DkmProcess process, ulong address, Microsoft.VisualStudio.Debugger.DkmReadMemoryFlags flags, ushort characterSize, int maxCharacters);
abstract member ReadMemoryString : Microsoft.VisualStudio.Debugger.DkmProcess * uint64 * Microsoft.VisualStudio.Debugger.DkmReadMemoryFlags * uint16 * int -> byte[]
Public Function ReadMemoryString (process As DkmProcess, address As ULong, flags As DkmReadMemoryFlags, characterSize As UShort, maxCharacters As Integer) As Byte()
参数
- process
- DkmProcess
中DkmProcess 表示正在调试的目标进程。 调试器调试进程,因此这是调试的基本单元。 DkmProcess 可以表示系统进程或虚拟进程,如小型转储。
- address
- UInt64
中从中读取目标进程的内存的基址。
- flags
- DkmReadMemoryFlags
中控制 DkmProcess ReadMemory 和 DkmProcess 的行为的标志。
- characterSize
- UInt16
中每个字符中的字节数。 应将此项设置为 1 (ANSI/UTF-8) ,2 (UTF-16) 或 4 (32) 。
- maxCharacters
- Int32
中要从目标进程中读取的最大字符数。 当 DkmReadMemoryFlags 为 false 时,如果在此范围内找不到空终止符,请求将失败。 此值应该合理。 Microsoft 实现将对超过 25 Mb 的字符串内存的任何请求失败。
返回
- Byte[]
弄从目标进程中读取的字符串的值。 如果 DkmReadMemoryFlags AllowPartialRead,则此内存将始终包含 null 终止字符。 如果已指定 DkmReadMemoryFlags,则在读取被截断的情况下,此缓冲区将不包含 null 终止字符。
例外
E_STRING_TOO_LONG 指示无法在指定的最大字符数内读取字符串。