驅動程式 - Kernel Mode Driver Framework (KMDF) - 教學說明 - 3. 系統透過呼叫DriverUnload()來卸載驅動程式



參考資訊:
https://wasm.in/
http://four-f.narod.ru/
https://github.com/steward-fu/ddk

當驅動程式準備被系統卸載時,DriverUnload()會被系統呼叫,這是驅動程式最後可以釋放資源的地方,若沒有適當的釋放資源,則驅動程式無法被卸載,遇到這種狀況時,系統會提示需要重新開機才可以正確卸載驅動程式

DriverUnload()定義如下:

void DriverUnload(WDFDRIVER);

範例:

void DriverUnload(WDFDRIVER Driver)
{
}

基本上,PNP類型的驅動程式不會設置DriverUnload Callback,因為資源的配置已經改到AddDevice(),除非有在DriverEntry()配置資源,那就會在DriverUnload()釋放這些配置的資源