//FILE_FLAG_OVERLAPPED 异步
OVERLAPPED ovd; //不会返回保存的位置
ovd.Offset = 100;
ovd.OffsetHigh;//组成一个64位
ovd.hEvent;//事件 方式通知 也可以放别的东西
ovd.Internal;//保存的错误码 错误返回
ovd.InternalHigh;//保存传输成功的字节数 所以 第三个参数没用了。
HANDLE hFile = CreateFile(L"test", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
OVERLAPPED overlapped = { 0 };
overlapped.Offset = 0;
BYTE bBuffer[MAXBYTE] = { 0 };
BOOL bRet = ReadFile(hFile, bBuffer, MAXBYTE, nullptr, &overlapped);
DWORD dwError = GetLastError();
if (bRet && dwError == ERROR_IO_PENDING)
{
//请求发送成功
WaitForSingleObject(hFile, INFINITE);
}
文件操作 异步IO
最新推荐文章于 2024-03-06 15:58:59 发布