Compartilhar via


Determinando por que UMDF indica arquivos pendentes no momento da remoção do dispositivo

Este tópico descreve como você pode usar as extensões de depurador Wudfext.dll em conjunto com um driver do UMDF (User-Mode Driver Framework) versão 1 ou 2 para determinar por que o UMDF indica que há arquivos pendentes ao remover um dispositivo.

Para o UMDF versão 1, você usará comandos de extensão implementados no wudfext.dll. A partir do UMDF versão 2, você usará comandos de extensão implementados no wdfkd.dll.

Para determinar por que o UMDF indica arquivos pendentes, use as seguintes etapas:

  1. Use !wudfext.umdevstack (UMDF 1) ou !wdfkd.wdfumdevstack (UMDF 2) para despejar a pilha do dispositivo. O despejo inclui arquivos intra-stack UMDF pendentes (ou seja, objetos de arquivo que um driver na pilha criou em vez de objetos de arquivo que foram criados por um aplicativo ou por um driver em outra pilha).

  2. Para cada arquivo intra-stack, execute !wudfext.umfile (UMDF 1) ou !wdfkd.wdfumfile (UMDF 2) para obter informações sobre o arquivo.

    A saída inclui a lista de IRPs pendentes.

  3. Determine por que cada IRP está pendente usando !wudfext.umirp (UMDF 1) ou !wdfkd.wdfumirp (UMDF 2) para obter informações sobre o IRP.

    Na saída de cada !wudfext.umirp ou !wdfkd.wdfumirp:

    • Determine se o IRP foi concluído.
    • Determine se uma solicitação criada pelo driver não foi excluída explicitamente pelo driver ou implicitamente pela árvore de objetos.