共用方式為


PnP 驅動程式的卸載例程

PnP 驅動程式必須有 Unload 常式,以移除 DriverEntry 常式所建立的任何驅動程式特定資源,例如記憶體、執行程和事件。 如果沒有驅動程式專屬的資源需要移除,驅動程式仍必須有 卸載 常式,但可僅僅返回。

移除所有驅動程式的裝置之後,可以隨時呼叫驅動程式的 卸載 常式。 PnP 管理員會在 IRQL = PASSIVE_LEVEL 的系統執行緒內容中呼叫驅動程式的 Unload 常式。

PnP 驅動程式會釋放裝置特定的資源和裝置物件,以回應 PnP 裝置移除 IRP。 PnP 管理程式會代表列舉出來的每個 PnP 裝置,以及驅動程式使用 IoReportDetectedDevice 報告的所有根列舉舊版裝置,傳送這些 IRP。

因此,PnP 驅動程式的 卸載 常式通常很簡單,通常只包含 return 陳述式。 不過,如果驅動程式在其 DriverEntry 常式中配置了任何全驅動程式資源,則必須在其 Unload 常式中解除配置這些資源,除非它已經這麼做。 一般而言,卸載 PnP 驅動程式的過程是同步作業。

I/O 管理員會釋放驅動程式物件,以及驅動程式使用 IoAllocateDriverObjectExtension 配置的任何驅動程式物件延伸模組。