現在我做了一個插件,主要采用管道的方式來與本地的一個service進行通信,但是在win7上面,打開UAC之后,是用createFile來創建管道的寫入句柄的時候出現問題,GetLastError看了一下回傳的是5,權限不足,關閉UAC之后就正常了。
在VS里面設定了requireAdministrator也不行(Windows8.1上面測驗 打開UAC也沒問題)
有問題的代碼如下:
_hWritePipe = CreateFile(
CommonFunc::s2ws(serverName).c_str(),
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
請問各位有什么解決辦法嗎
uj5u.com熱心網友回復:
When an application creates a file across a network, it is better to use GENERIC_READ | GENERIC_WRITE for dwDesiredAccess than to use GENERIC_WRITE alone. The resulting code is faster, because the redirector can use the cache manager and send fewer SMBs with more data. This combination also avoids an issue where writing to a file across a network can occasionally return ERROR_ACCESS_DENIED.好像是建議你搭配使用 GENERIC_READ | GENERIC_WRITE
uj5u.com熱心網友回復:
創建命名管道的時候用一個security descptor指明允許某個桌面用戶訪問轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/136572.html
上一篇:如何用MFC這一個整人程式
下一篇:求cef3
