Condividi tramite


Creazione di codice di paging in un driver KMDF

Il codice impaginabile è codice che può essere scritto nel file di paging del computer quando il codice non viene usato. È possibile rendere parte del driver paginabile per ridurre l'immagine di caricamento e il tempo di caricamento iniziale e ridurre la quantità di codice del driver che usa il pool di memoria non di paging limitato del computer.

Per determinare se il codice o i dati di paging sono appropriati per il driver, eseguire le operazioni seguenti:

  1. Identificare le sezioni di paging nel driver.

    Le sezioni con paging non vengono caricate in memoria fino a quando non sono necessarie. Per informazioni su come creare sezioni di paging in un driver, vedere Rendere i driver paginabili.

  2. Assicurarsi che il codice del driver di paging non impedisca la capacità di un computer di risvegliarsi rapidamente da uno stato a basso consumo.

    Tutte le funzioni di callback degli oggetti dispositivo fornite dai driver vengono chiamate in IRQL = PASSIVE_LEVEL, che consente di rendere la tabella codici (come descritto in Rendere i driver pageable).

    Tuttavia, non è consigliabile rendere tabella codici di una funzione di callback se il framework chiama la funzione di callback quando il dispositivo lascia uno stato a basso consumo e torna allo stato funzionante (D0).

    Se tale codice è impaginabile, il codice potrebbe essere scritto nel file di paging prima che il computer entri in stato di sospensione. Pertanto, il computer sarà più lento a risvegliarsi perché il codice non può essere ricaricato (e pertanto il dispositivo non può diventare completamente operativo) fino a quando non viene ripristinata la potenza del disco di paging.

    Di conseguenza, le funzioni di callback elencate nell'argomento A Device Returns to Its Working State non devono essere visualizzabili.

  3. Determinare se il driver richiede l'accesso a dati impaginabili all'esterno del driver, ad esempio file, registro o pool di paging, durante le transizioni di alimentazione.

    Per informazioni su come abilitare e disabilitare la capacità di un driver di accedere a dati impaginabili durante le transizioni di alimentazione, vedere WdfDeviceInitSetPowerPageable e WdfDeviceInitSetPowerNotPageable.

    Per informazioni su come determinare quando il driver si trova in uno stato non modificabile, vedere WdfDevStateIsNP.