日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GetOverlappedResult函数详细解答

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GetOverlappedResult函数详细解答 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

GetOverlappedResult
GetOverlappedResult函數(shù)返回指定文件、指定管道或通信設備上重疊操作的結果。

Windows95:此功能只適用于通訊設備或使用DeviceIoControl功能打開的檔案。

BOOL GetOverlappedResult ( HANDLE hFile、//文件、管道或通信設備的句柄 lpoverllapped, //指向重疊結構的指針 LPDWORD lpNumberOfBytesTransferred, //指向?qū)嶋H字節(jié)數(shù)的指針 BOOL bWait //等待標志 );

參數(shù)
hFile
文件、命名管道或通信設備的句柄。這與調(diào)用ReadFile、WriteFile、ConnectNamedPipe、TransactNamedPipe、DeviceIoControl或WaitCommEvent函數(shù)啟動重疊操作時指定的句柄相同。
lpOverlapped
指向在開始重疊操作時指定的重疊結構的指針。
lpNumberOfBytesTransferred
指向32位變量的指針,該變量接收由讀或?qū)懖僮鲗嶋H傳輸?shù)淖止?jié)數(shù)。對于TransactNamedPipe操作,這是從管道中讀取的字節(jié)數(shù)。對于DeviceIoControl操作,這是設備驅(qū)動程序返回的輸出數(shù)據(jù)字節(jié)數(shù)。對于ConnectNamedPipe或WaitCommEvent操作,這個值是未定義的。
bWait
指定函數(shù)是否應該等待掛起的重疊操作完成。如果為真,則在操作完成之前函數(shù)不會返回。如果為FALSE且操作仍然掛起,則函數(shù)返回FALSE,而GetLastError函數(shù)返回ERROR_IO_INCOMPLETE。
返回值
如果函數(shù)成功,則返回值為非零。

如果函數(shù)失敗,則返回值為零。要獲取擴展的錯誤信息,請調(diào)用GetLastError。

講話
GetOverlappedResult函數(shù)報告的結果是指定句柄的最后一個重疊操作的結果,該操作提供了指定的重疊結構,并且該操作的結果正在等待處理。當啟動該操作的函數(shù)返回FALSE,并且GetLastError函數(shù)返回ERROR_IO_PENDING時,將指示該操作。當I/O操作處于掛起狀態(tài)時,啟動該操作的函數(shù)將重疊結構的hEvent成員重置為無信號狀態(tài)。然后,當掛起操作完成時,系統(tǒng)將事件對象設置為有信號狀態(tài)。

在重疊結構中指定手動重置事件對象。如果使用自動重置事件對象,則在啟動重疊操作和調(diào)用GetOverlappedResult之間的任何其他等待操作中都不能指定事件句柄。例如,事件對象有時在某個等待函數(shù)中指定,以等待操作完成。當?shù)却瘮?shù)返回時,系統(tǒng)將自動重置事件的狀態(tài)設置為無信號狀態(tài),隨后調(diào)用GetOverlappedResult,并將bWait參數(shù)設置為TRUE,這將導致函數(shù)被無限期阻塞。

如果bWait參數(shù)為TRUE,則GetOverlappedResult通過等待事件對象處于有信號狀態(tài)來確定掛起操作是否已經(jīng)完成。

Windows 95和Windows 98:如果bWait為真,則重疊結構的hEvent成員不能為空。

windowsnt:如果重疊結構的hEvent成員為空,系統(tǒng)將使用hFile句柄的狀態(tài)在操作完成時發(fā)出信號。不建議為此使用文件、命名管道或通信設備句柄。使用事件對象更安全,因為在同一文件、命名管道或通信設備上執(zhí)行多個同步重疊操作時可能會產(chǎn)生混淆。在這種情況下,無法知道是哪個操作導致對象的狀態(tài)被通知。

QuickInfo
windowsnt:需要3.1或更高版本。
Windows:需要Windows 95或更高版本。
Windows CE:不支持的。
Header:在winbase.h中聲明。
導入庫:使用kernel32.lib。

另請參閱
同步概述,同步函數(shù),CancelIo, ConnectNamedPipe, CreateEvent, DeviceIoControl, GetLastError, OVERLAPPED, ReadFile, TransactNamedPipe, WaitCommEvent, WriteFile

總結

以上是生活随笔為你收集整理的GetOverlappedResult函数详细解答的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。