WDM Event Log造成的file lock

最近在Win10發現既有的driver無法正常被移除,在使用sc delete service後,.sys檔案一樣被使用中。後來追朔之前版本的Windows,發現在stop service後再start,會出現The system cannot find the file specified的錯誤訊息。可以推斷應有memory leak發生。

在trace程式碼後,發現是因為呼叫IoAllocateErrorLogEntry後並沒做任何釋放動作。經過閱讀MSDN與試驗後,只要有呼叫IoWriteErrorLogEntry後,LogEntry就會被自動釋放。如果沒做寫入,也應該要呼叫IoFreeErrorLogEntry去避免memory leak。