1.26.2007

Synchronize with Driver loading/Unloading

Driver間的互相同步(通知?),是用 MessageQueue。

每一個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的狀態(時機)

msgQ = CreateMessasgeQueue( ).
RequestDeviceNotification( GUID_XXX, msgQ,,,)
WaitSingleEvent(msgQ...)
ReadMessageQueue(msgQ, buf....)
buf->....
記得在不需要通知時,要StopDeviceNotification。和 CloseMsgQueue。

以上各function 在 PlatformBuilder help 中都可以找到...

沒有留言: