共用方式為


PnP 驅動程式的卸載常式

PnP 驅動程式必須具有 Unload 常式,以移除 DriverEntry 常式所建立的任何驅動程式特定資源,例如記憶體、執行緒和事件。 如果沒有要移除的驅動程式特定資源,驅動程式仍然必須有 Unload 常式,但只能傳回。

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

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

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

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