Condividi tramite


Determinazione del motivo per cui UMDF indica i file in sospeso in fase di rimozione dei dispositivi

Questo argomento descrive come usare le estensioni del debugger Wudfext.dll insieme a un driver framework (UMDF) di User-Mode versione 1 o 2 per determinare perché UMDF indica che quando si rimuove un dispositivo sono presenti file in sospeso.

Per UMDF versione 1, si useranno i comandi di estensione implementati in wudfext.dll. A partire da UMDF versione 2, si useranno i comandi di estensione implementati in wdfkd.dll.

Per determinare il motivo per cui UMDF indica i file in sospeso, seguire questa procedura:

  1. Usare !wudfext.umdevstack (UMDF 1) o !wdfkd.wdfumdevstack (UMDF 2) per eseguire il dump dello stack di dispositivi. Il dump include file intra stack UMDF in sospeso, ovvero oggetti file che un driver nello stack creato anziché gli oggetti file creati da un'applicazione o da un driver in un altro stack.

  2. Per ogni file intra stack, eseguire !wudfext.umfile (UMDF 1) o !wdfkd.wdfumfile (UMDF 2) per ottenere informazioni sul file.

    L'output include l'elenco di indirizzi IP in sospeso.

  3. Determinare perché ogni IRP è in sospeso usando !wudfext.umirp (UMDF 1) o !wdfkd.wdfumirp (UMDF 2) per ottenere informazioni sull'IRP.

    Dall'output di ogni !wudfext.umirp o !wdfkd.wdfumirp:

    • Determinare se l'IRP è stato completato.
    • Determinare se una richiesta creata dal driver non è stata eliminata in modo esplicito dal driver o in modo implicito dall'albero degli oggetti.