Поделиться через


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

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

Для UMDF версии 1 вы будете использовать команды расширения, реализованные в wudfext.dll. Начиная с UMDF версии 2, вы будете использовать команды расширения, реализованные в 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.
    • Определите, не был ли созданный драйвером запрос явно удален драйвером или неявным деревом объектов.