2011-03-08 60 views
0

我無法看到使用WNetAddConnection2W在Windows服務安裝的驅動器寫入看到安裝驅動VC++無法使用WNetAddConnection2

當我調試它返回成功的服務,但是當我打開資源管理器看到,安裝驅動它不在這裏。 我正在Windows服務中執行此操作,其中我的服務在administartor previliages中運行。 我的代碼如下所示:

lpNetResource->lpRemoteName = L"\\\\172.24.18.240\\praveena\\CIFS"; 
    lpNetResource->lpLocalName = L"Z:"; 
dwRetVal = WNetAddConnection2W(lpNetResource, wcpPassword, wcpUserName, CONNECT_UPDATE_RECENT); 

,當我在MFC應用程序中使用相同的代碼,它工作正常。

任何幫助表示讚賞。

回答

0

當驅動器添加或刪除在另一個會話(因爲它在Windows服務的情況下發生的),資源管理器沒有辦法知道這一點。

爲了解決我們的回調文件系統庫,它創建的虛擬驅動器(和用戶做到這一點從服務)這個問題,我們已經實現了一個特殊的shell擴展DLL。 此DLL監聽由執行盤創建(和其在服務上下文中執行)的用戶模式代碼發送的信號。當DLL收到信號時,它會廣播WM_DEVICECHANGE系統消息。然後,資源管理器捕獲此消息並重新掃描設備列表。