Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladač PnP musí mít rutinu Unload , která odebere všechny prostředky specifické pro ovladače, jako jsou paměť, vlákna a události, které jsou vytvořeny rutinou DriverEntry . Pokud nejsou k dispozici žádné prostředky specifické pro ovladače, které by bylo možné odebrat, musí mít ovladač stále rutinu Unload , ale může jednoduše vrátit.
Rutinu uvolnění ovladače lze volat kdykoli po odebrání všech zařízení ovladače. Správce PnP volá rutinu Unload ovladače v kontextu systémového vlákna v IRQL = PASSIVE_LEVEL.
PnP ovladače uvolňují specifické pro zařízení prostředky a objekty v reakci na IRP odstranění zařízení PnP. Správce PnP odešle tyto IRP jménem každého zařízení PnP, které vypíše, a také jakéhokoli staršího zařízení zajištěného kořenovým výčtem, které ovladač hlásí pomocí IoReportDetectedDevice.
V důsledku toho jsou rutiny Unload ovladačů PnP obvykle jednoduché, často se skládají pouze z návratového příkazu. Pokud však ovladač přidělil v rutině DriverEntry nějaké prostředky pro celý ovladač, musí tyto prostředky uvolnit v rutině Uvolnění , pokud to ještě neudělal. Obecně platí, že proces uvolnění ovladače PnP je synchronní operace.
Správce vstupně-výstupních operací uvolní objekt ovladače a jakékoli rozšíření objektu ovladače, které ovladač přidělil pomocí IoAllocateDriverObjectExtension.