Gil*_*ili 3 windows file-io asynchronous
Win32 ReadFileEx定义为:
BOOL WINAPI ReadFileEx(
__in HANDLE hFile,
__out_opt LPVOID lpBuffer,
__in DWORD nNumberOfBytesToRead,
__inout LPOVERLAPPED lpOverlapped,
__in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何使完成例程(最后一个参数)在操作完成时调用动态函数指针。似乎没有传递用户数据的方法。有任何想法吗?
传递给ReadFileEx的lpOverlapped函数将传递给lpCompletionRoutine函数。
您可以将lpOverlapped嵌入您自己的结构中,然后使用它来查找指向上下文的指针:
struct ReadFileExContext
{
OVERLAPPED _Overlapped;
LPVOID MyContext;
};
Run Code Online (Sandbox Code Playgroud)
然后,在回调函数中,将LPOVERLAPPED强制转换为ReadFileContext,您就可以开始了。
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |