gpt4 book ai didi

winapi - 如果 CancelIo 失败怎么办?

转载 作者:行者123 更新时间:2023-12-02 02:49:35 29 4
gpt4 key购买 nike

调用 CancelIo 的原因有很多,但在我的特定情况下,我调用它是为了知道系统不再写入缓冲区。一旦我知道了这一点,我就可以安全地释放缓冲区。

但是如果 CancelIo 失败怎么办?我现在所做的是显式泄漏缓冲区并引发异常。有没有更好的方法来处理这个问题?

附注对木卫二、木卫三和木卫四的类似呼唤似乎缺失了。我应该提交错误吗?

最佳答案

MSDN 文档对于可能返回哪些错误不是很清楚。我想(因为 CancelIo 无论如何都是异步的)这意味着您使用了错误的句柄,或者类似的主要内容。我所说的异步是指仅仅因为 CancelIo 返回 OK,您就无法立即释放任何待处理 I/O 的缓冲区。

文档中指出,挂起的 I/O 将返回 ERROR_OPERATION_ABORTED。我认为您已经跟踪挂起的 I/O 状态,这样当且仅当所有挂起的 I/O 返回此错误时,您才可以安全地释放缓冲区。如果待处理的 I/O 在 CancelIo 后仍处于挂起状态,则释放缓冲区可能会导致一系列不良副作用。

关于winapi - 如果 CancelIo 失败怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950314/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com