但是每次 rebuild driver,還是要重新 load OS。
這樣有點麻煩。
所以,需要一個 在runtime load/unload device driver 的方法,配合 kitl 的 "Release Directory Module" 功能。
這樣,每次rebuild driver,就只要 unload, load driver 一次就可以。
但是要unload drive ,必須要有 driver 的 handle:
DeactivateDeviceEx
BOOL DeactivateDevice(
HANDLE hDevice
);
hDevice
[in] Handle to an active device. The ActivateDevice and ActivateDeviceEx functions return this value.
要得到 hDevice 就要作 ActivateDevice。
所以Driver 不可以是 buildin active,要自己 activate,才有辦法拿到。
要把Driver 從 registry 的builtin 拿掉,才不會自動 load進來。
但是 ActivateDeviceEx 又需要Registry 作為 Driver active 的依據:
所以就要在程式中create registry key..
整個就參考這個 : Loading a Driver with ActivateDeviceEx
沒有留言:
張貼留言