每一個driver,由device manager 管理(load)的driver,可以宣告一個自己的GUID。
然後Device Manager 在loading/unloading 這個driver時,會 AdvertiseInterface( )。
需要知道這些動作的其他driver,ap,可以create 一個message queue,請device manager在 AdvertiseInterface時將對應的message放到queue中 。
這樣需要被通知的driver, ap就可以利用這個message queue來得知該driver load/unload的狀態(時機)
記得在不需要通知時,要StopDeviceNotification。和 CloseMsgQueue。
msgQ = CreateMessasgeQueue( ).
RequestDeviceNotification( GUID_XXX, msgQ,,,)
WaitSingleEvent(msgQ...)
ReadMessageQueue(msgQ, buf....)
buf->....
本文介绍了一种通过MessageQueue实现Driver间加载和卸载状态同步的方法。具体来说,每个由DeviceManager管理的Driver可以声明自己的GUID,在加载或卸载时通过AdvertiseInterface通知其他Driver/AP。这些Driver/AP可以通过创建MessageQueue接收相应的消息,从而获取Driver状态。
4万+

被折叠的 条评论
为什么被折叠?



