共用方式為


偵測可分頁的程式碼

若要偵測在 IRQL >= DISPATCH_LEVEL 執行的程式代碼,請使用 PAGED_CODE 巨集。 在除錯模式中,如果程式碼在 IRQL >= DISPATCH_LEVEL 執行,則此宏將產生一個訊息。 將巨集新增為例程中的第一個語句,將整個例程標示為分頁程式碼,如下列範例所示:

NTSTATUS 
MyDriverXxx( 
    IN OUT PVOID ParseContext OPTIONAL, 
    OUT PHANDLE Handle 
    ) 
{ 
    NTSTATUS Status; 
 
    PAGED_CODE(); 
. 
. 
. 
} 

若要確定您正確執行這項作,請使用已啟用 Force IRQL Checking 選項,對已完成的驅動程序執行 Driver Verifier。 此選項會導致系統每次驅動程式引發 IRQL 到 DISPATCH_LEVEL 或更高時,自動分頁所有可分頁的程式碼。 使用驅動程式驗證器,您可以快速在此區域中找到任何驅動程序錯誤。 否則,這些錯誤通常只會由客戶發現,而您常常會發現它們非常難以重現。