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。 當 Option 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。 |
目標平台 | Universal |
標頭 | wdm.h (包含 Wdm.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |