使用 StgCreateStorageEx 创建的 IStorage 打开的 win32 IStream 对象是否有数量限制?

发布于 2024-10-31 03:43:54 字数 369 浏览 5 评论 0原文

我通过 StgCreateStorageEx 函数创建一个 IStorage,类型为:STGFMT_STORAGE

然后我使用 CreateStream 方法创建 IStream 对象(大约 60 个)。

我没有在所有 IStream 接口上调用 Release,但当我在其中一些接口上调用 Seek 时,它会返回 STG_E_REVERTED

但是,如果我创建它们并一一使用它们,它就可以正常工作。

有谁知道为什么?

有限制吗?

I create an IStorage by StgCreateStorageEx function, with type: STGFMT_STORAGE.

Then I used the CreateStream method to create IStream objects (around 60).

I didn't call Release on all of the IStream interfaces, but when I call Seek on some of them, it returns STG_E_REVERTED.

However, if I create them and use them one by one, it works properly.

Does anyone know why?

Is there a limit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请远离我 2024-11-07 03:43:54

MSDN 说:

  • STGM_DELETEONRELEASE不支持 标志。
  • 不支持从同一存储多次打开同一流。必须在 grfMode 参数中指定 STGM_SHARE_EXCLUSIVE 共享模式标志。

您之前发布过这些流吗?

MSDN says:

  • The STGM_DELETEONRELEASE flag is not supported.
  • Opening the same stream more than once from the same storage is not supported. The STGM_SHARE_EXCLUSIVE sharing-mode flag must be specified in the grfMode parameter.

Did you release these streams before?

念三年u 2024-11-07 03:43:54

我预计这将取决于操作系统允许的文件句柄打开的最大数量。对于 Windows 案例,请参阅此讨论: http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/ce6ce7df-b769-41b7-bccf-b75707c0a729/

I expect tha this will depend on the maximum nr of filehandles openend allowed by the OS. For the windows case see this discussion: http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/ce6ce7df-b769-41b7-bccf-b75707c0a729/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文