overlapped-io

    0热度

    3回答

    我正在使用CreateFile,WriteFile和ReadFile API调用将一些数据写入USB设备。我的代码在32位系统上完美工作。 CreateFile获取设备句柄,将该句柄和一些数据传递给WriteFile,并使用ReadFile从该句柄中读取数据。 我的问题是,相同的代码不适用于64位系统。从WriteFile返回的错误是6,句柄无效。我在CreateFile调用中检查了句柄的有效性,

    1热度

    3回答

    在我的程序中,我使用AcceptEx()的重叠版本来接受新的连接。 接受新连接后,程序会启动另一个重复呼叫AcceptEx()以接受更多连接。这工作正常,我可以连接多个客户端到服务器成功。 但是,如果我只连接一个客户端,并让服务器应用程序在此套接字上调用WSARecv(重叠),则神奇地接受一个新的“鬼”连接(第一个客户端运行无效)。当然,我打电话给WSARecv - 它会给出错误。 该程序为所有重

    0热度

    1回答

    程序运行良好几分钟,然后ReadFile开始失败,错误代码为ERROR_WORKING_SET_QUOTA。 我使用的ReadFile重叠的I/O,像这样: while (continueReading) { BOOL bSuccess = ReadFile(deviceHandle, pReadBuf, length, &bytesRead, readOverl

    1热度

    1回答

    我正在使用Winsock2和重叠的I/O。这意味着我使用WSAOVERLAPPED结构调用WSARecv,稍后使用WSAWaitForMultipleEvents等待数据。 我做出了奇怪的观察,我似乎失去这是送我的应用程序,而我与调试器停止所有数据。我认为这些数据会堆积在操作系统的某个地方,然后在下次致电WSARecv时发布。 是我的假设假的?

    1热度

    2回答

    我正在开发Windows游戏,并且在渲染时,一些计算机会遇到间歇性暂停(由于缺乏更好的术语,“暂停”)。当分析时,它们出现在代码中看似随机的地方。最终我注意到,这不仅仅是我的过程受到了影响,而且(看似)系统上的每个过程都受到了影响。我的应用程序中的所有线程都一次结束。这些故障期间CPU利用率下降,看起来好像大多数进程没有进展。 这使我相信这可能是一个操作系统或驱动程序问题,但它只发生在玩游戏时(并

    3热度

    3回答

    我们将现有的Windows代码移植到Linux中。我们使用ACE作为抽象层。 我们使用Windows命名管道与多个客户端进行通信并执行重叠操作。 在linux中与此相当的是什么。我检查了linux命名管道(FIFO),但它们似乎只支持一个客户端和服务器,并且不支持重叠的IO。 你能指导我吗?

    0热度

    1回答

    有没有人设法弄清楚如何异步调用NtQueryDirectoryFile? 通过异步调用,我的意思是对目录不打开与FILE_SYNCHRONOUS_IO_ALERT或FILE_SYNCHRONOUS_IO_NONALERT调用NtQueryDirectoryFile。 对我来说,这似乎返回STATUS_PENDING就像一个正常的NtReadFile请求不上一个正常的文件,但是当我试图在目录中使用N

    0热度

    1回答

    我用I/O完成端口和winsock套接字做了一些测试。 我遇到过,有时在我从一个连接接收到数据后,再次在该套接字上再次调用WSARecv时,它立即返回错误259(ERROR_NO_MORE_ITEMS)。 我想知道为什么系统标记重叠交易与此错误,而不是保持recv呼叫阻塞/等待传入数据。 你知道这是什么意思吗? 我很乐意听到您的想法。 编辑:代码 do { OVERLAPPE

    1热度

    1回答

    任何人都可以请建议一个可靠的方式来处理系统错误的情况下使用重叠套接字IO和IOCP? MSDN描述在这方面很麻烦。它说,对于GetQueuedCompletionStatus返回代码FALSE,应该有一个后续的GetLastError调用来获取失败操作的错误代码。但是,我们知道,对于WSA功能,应该调用WSAGetLastError(GetLastError在套接字错误时返回0)。所以问题的第一部

    3热度

    2回答

    是否可以通过重叠I/O启动TCP连接请求,并在Windows中完成连接之前取消它?我需要至少支持Windows XP SP2。