在 KMDF 驅動程式中建立可分頁程式碼

可分頁程式碼 是當未使用程式碼時,可以寫入電腦的分頁檔案的程式碼。 您可以將驅動程式的一部分設為可分頁,以減少其載入映射和初始載入時間,並減少使用電腦有限非分頁式記憶體集區的驅動程式程式碼數量。

若要協助您判斷可分頁的程式碼或資料是否適合您的驅動程式,請執行下列動作:

  1. 識別驅動程式中的可分頁區段。

    在需要分頁區段之前,不會載入記憶體中。 如需如何在驅動程式中建立可分頁區段的詳細資訊,請參閱 讓驅動程式可分頁

  2. 請確定分頁驅動程式程式碼不會妨礙電腦從低電源狀態快速喚醒的能力。

    驅動程式提供的所有裝置物件回呼函式都會在 IRQL = PASSIVE_LEVEL呼叫,這可讓您將其字碼頁化 (,如 讓驅動程式可分頁) 中所述。

    不過,如果架構在裝置離開低電源狀態並返回其工作 (D0) 狀態時呼叫回呼函式,則不應該讓回呼函式的字碼頁。

    如果這類程式碼可分頁,則程式碼可能會在電腦進入睡眠狀態之前寫入分頁檔案。 因此,電腦會變慢喚醒,因為您的程式碼無法重載 (,因此裝置在還原分頁磁片電源之前無法完全運作) 。

    因此, 「裝置返回其工作狀態 」主題中列出的回呼函式不應該可分頁。

  3. 判斷驅動程式是否需要在電源轉換期間存取驅動程式外部的可分頁資料,例如檔案、登錄或分頁集區。

    如需如何在電源轉換期間啟用和停用驅動程式存取可分頁資料的資訊,請參閱 WdfDeviceInitSetPowerPageableWdfDeviceInitSetPowerNotPageable

    如需如何判斷驅動程式處於不可分頁狀態的相關資訊,請參閱 WdfDevStateIsNP