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。 如果 选项 设置为任何其他值,KdChangeOption 返回STATUS_INVALID_INFO_CLASS。 当 选项 KD_OPTION_SET_BLOCK_ENABLE时,调用方必须将 InBufferBytes 参数设置为 sizeof(BOOLEAN),将 OutBufferBytes 参数设置为零,并将 OutBuffer 参数设置为 NULL;否则,KdChangeOption 返回STATUS_INVALID_PARAMETER。 如果 KdBlockEnable 系统变量中的高位(0x80),则永远无法重新启用调试器,并且 KdChangeOption 返回STATUS_ACCESS_DENIED。 否则,KdChangeOption 将 KdBlockEnable 系统变量设置为 InBuffer 指向的 BOOLEAN 值。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows Server 2003 中提供了 Service Pack 1(SP1)及更高版本的 Windows 和 Windows Server。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |