IDkmMemoryOperation.ReadMemoryString 方法

定义

从目标进程进程的内存中读取以 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 指示无法在指定的最大字符数内读取字符串。

适用于