1.09.2008

share resouce between drivers - mutex

Driver 之間要share resource,需要一個mutex,這個mutext是named mutex,需要的driver都要用一樣的name 來create,這樣就能用 wait/release 來達到同步。

所有要用的driver都要:

1. Create Mutex
    mtx = CreateMutex(NULL,FALSE, TEXT("I2CChannel"));
2.使用share device (這裡以I2C為例)前,要取得mutex :
    WaitForSingleObject(mtx,INFINITE);
argument "INFINITE"會一直wait到其他driver release 這個mutex。

3.使用完後,release :
    ReleaseMutex(mtx);
4.最後,要注意,driver unload 時要記得close mutex:
    CloseHandle(mtx);
重點就是 "named" mutex,利用unique name,達到driver間的同步。

沒有留言: