kdChangeOption 函数 (wdm.h)
KdChangeOption 例程访问和更改与内核调试相关的内核状态。
语法
NTSTATUS KdChangeOption(
[in] KD_OPTION Option,
[in, optional] ULONG InBufferBytes,
[in] PVOID InBuffer,
[in, optional] ULONG OutBufferBytes,
[out] PVOID OutBuffer,
[out, optional] PULONG OutBufferNeeded
);
参数
[in] Option
KD_OPTION 枚举中的值,指示要访问和更改的内核状态。 此参数的值确定 InBuffer 和 OutBuffer 的格式和所需长度。 目前,唯一有效的值为 KD_OPTION_SET_BLOCK_ENABLE。
[in, optional] InBufferBytes
InBuffer 处缓冲区的大小(以字节为单位)。 此值是可选的。
[in] InBuffer
指向调用方分配的输入缓冲区的指针,该缓冲区包含有关要更改的内核状态的信息。 如果 Option 指定不需要输入数据的内核状态,则此指针可以为 NULL。
[in, optional] OutBufferBytes
OutBuffer 处缓冲区的大小(以字节为单位)。 此值是可选的。
[out] OutBuffer
指向调用方分配的输出缓冲区的指针,在该缓冲区中返回与内核状态相关的信息。 如果 Option 指定不生成输出数据的内核状态,则此指针可以为 NULL。
[out, optional] OutBufferNeeded
返回值
如果 KdChangeOption 成功执行了请求的操作,则返回STATUS_SUCCESS。 否则,返回值可以是以下错误状态代码之一:
STATUS_ACCESS_DENIED
STATUS_INVALID_INFO_CLASS
STATUS_INVALID_PARAMETER
STATUS_DEBUGGER_INACTIVE
注解
如果启动操作系统时没有调试控件, KdChangeOption 将返回STATUS_DEBUGGER_INACTIVE。
目前, Option 参数的唯一有效值是KD_OPTION_SET_BLOCK_ENABLE。 如果 Option 设置为任何其他值, 则 KdChangeOption 返回STATUS_INVALID_INFO_CLASS。 KD_OPTION_SET_BLOCK_ENABLE Option 时,调用方必须将 InBufferBytes 参数设置为 sizeof (BOOLEAN) , 将 OutBufferBytes 参数设置为零, 将 OutBuffer 参数设置为 NULL;否则, KdChangeOption 返回STATUS_INVALID_PARAMETER。 如果 KdBlockEnable 系统变量中的高位 (0x80) 设置为 1,则永远无法重新启用调试器, KdChangeOption 将返回STATUS_ACCESS_DENIED。 否则, KdChangeOption 将 KdBlockEnable 系统变量设置为 InBuffer 指向的 BOOLEAN 值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Microsoft Windows Server 2003 Service Pack 1 (SP1) 及更高版本的 Windows 和 Windows Server。 |
目标平台 | 通用 |
标头 | wdm.h (包括 Wdm.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |