Определение того, почему UMDF указывает невыполненные файлы во время удаления устройства

В этом разделе описывается, как использовать расширения отладчика Wudfext.dll в сочетании с драйвером User-Mode Driver Framework (UMDF) версии 1 или 2, чтобы определить, почему UMDF указывает, что при удалении устройства существуют выдающиеся файлы.

Для UMDF версии 1 вы будете использовать команды расширения, реализованные в wudfext.dll. Начиная с версии 2 UMDF, вы будете использовать команды расширения, реализованные в wdfkd.dll.

Чтобы определить, почему UMDF указывает на невыполненные файлы, выполните следующие действия.

  1. Используйте !wudfext.umdevstack (UMDF 1) или !wdfkd.wdfumdevstack (UMDF 2) для создания дампа стека. Дамп включает в себя выдающиеся файлы UMDF внутри стека (т. е. объекты файлов, созданные драйвером в стеке, а не объекты файлов, созданные приложением или драйвером в другом стеке).

  2. Для каждого файла внутри стека выполните !wudfext.umfile (UMDF 1) или !wdfkd.wdfumfile (UMDF 2), чтобы получить сведения о файле.

    Выходные данные включают список ожидающих IRP.

  3. Определите, по какой причине каждый IRP активен, используя !wudfext.umirp (UMDF 1) или !wdfkd.wdfumirp (UMDF 2) для получения информации об этом IRP.

    Из выходных данных каждого !wudfext.umirp или !wdfkd.wdfumirp:

    • Определите, завершен ли IRP.
    • Определите, был ли созданный драйвером запрос не удален либо явным образом драйвером, либо неявно деревом объектов.