[英]How to move HANDLE to another HANDLE in winapi?
考慮這樣打開驅動文件:
HANDLE h = CreateFile(TEXT("\\\\.\\" DRIVER_NAME_DOS),
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
我的問題是,如果驅動程序被指定為獨占設備(這意味着當時只能由一個實體打開),如何將“所有權”從一個句柄傳遞給另一個句柄?
我不想先CloseHandle(h)
然后h1=createfile(...)
而是做類似的事情(它是我的偽代碼,希望它可以理解)
h1 = std::move(h)
//h1 has handle to driver file, h is freed
HANDLE
只是引擎蓋下的指針:
typedef PVOID HANDLE;
typedef void *PVOID;
您可以簡單地將其分配給相同類型的另一個指針:
HANDLE h1 = h;
作為一種良好的編碼習慣,您最好取消前一個:
h = nullptr;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.