KBUGCHECK_REMOVE_PAGES結構 (wdm.h)
KBUGCHECK_REMOVE_PAGES 結構描述從損毀傾印檔案 KBUGCHECK_REASON_CALLBACK_ROUTINE 回呼例程移除的一或多個驅動程式提供的數據頁面。
語法
typedef struct _KBUGCHECK_REMOVE_PAGES {
PVOID Context;
ULONG Flags;
ULONG BugCheckCode;
ULONG_PTR Address;
ULONG_PTR Count;
} KBUGCHECK_REMOVE_PAGES, *PKBUGCHECK_REMOVE_PAGES;
成員
Context
包含私用內容數據,以獨佔使用回呼例程。 回呼例程可以將這個成員設定為任何值。 一般而言,如果需要多次呼叫回呼例程,例程會將這個成員設定為在初始呼叫期間指向驅動程式提供的緩衝區。 在後續呼叫期間,回呼例程可以讀取這個緩衝區的先前內容,並更新其內容。 在初始呼叫回呼例程之前,ContextNULL。
Flags
包含描述移除頁面要求的旗標。 回呼例程必須設定這個成員的值。 將此成員設定為下列一或多個旗標位的位 OR:
KB_ADD_PAGES_FEATURE_SHIFT 4
KB_REMOVE_PAGES_FEATURE_SHIFT 4
KB_ADD_PAGES_FEATURE_MASK (0xF << KB_ADD_PAGES_FEATURE_SHIFT)
KB_REMOVE_PAGES_FEATURE_MASK (0xF << (KB_ADD_PAGES_FEATURE_SHIFT + KB_REMOVE_PAGES_FEATURE_SHIFT))
BugCheckCode
包含錯誤檢查程式代碼,指定錯誤檢查的原因。 回呼例程可以使用這項資訊來決定是否要將任何頁面新增至損毀傾印檔案。 如需錯誤檢查碼的完整清單,請參閱 WDK 中包含的 Bugcodes.h 頭檔。
Address
指定從損毀傾印檔案中移除回呼例程要求的頁面實體或虛擬位址。
Count
指定要從損毀傾印檔案中移除的連續頁面數目,從 Address 成員指定的虛擬或實體地址開始。 如果 Count> 1 和 Address 是虛擬位址,則分頁在虛擬記憶體空間中是連續的。 如果 Count> 1 和 Address 為實體位址,則分頁在物理記憶體空間中是連續的。 回呼例程可以將這個成員設定為零,表示不需要從損毀傾印檔案中移除任何頁面。
言論
在呼叫 KBUGCHECK_REASON_CALLBACK_ROUTINE 回呼例程時,作系統會將 Reason 參數設定為 KbCallbackRemovePages,並將 ReasonSpecificData 參數設定為指向 KBUGCHECK_REMOVE_PAGES 結構。
如需 Bug 檢查回呼例程的詳細資訊,請參閱 撰寫 Bug 檢查回呼例程。
要求
要求 | 價值 |
---|---|
標頭 | wdm.h |