Существует ли ограничение на число открытых IS32-объектов win32 для IStorage, созданных с помощью StgCreateStorageEx? - PullRequest
0 голосов
/ 07 апреля 2011

Я создаю функцию IStorage StgCreateStorageEx с типом: STGFMT_STORAGE.

Затем я использовал метод CreateStream для создания IStream объектов (около 60).

Я не вызывал Release на всех IStream интерфейсах, но когда я вызываю Seek на некоторых из них, он возвращает STG_E_REVERTED.

Однако, если я создаю их и используюих один за другим, это работает правильно.

Кто-нибудь знает почему?

Есть ли предел?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

MSDN говорит:

  • Флаг STGM_DELETEONRELEASE не поддерживается.
  • Открытие одного и того же потока более одного раза из одного хранилища не поддерживается,Флаг STGM_SHARE_EXCLUSIVE режим совместного использования должен быть указан в параметре grfMode.

Вы освобождали эти потоки раньше?

0 голосов
/ 07 апреля 2011

Я ожидаю, что это будет зависеть от максимального числа открытых файловых дескрипторов, разрешенных ОС. Для случая окон см. Это обсуждение: http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/ce6ce7df-b769-41b7-bccf-b75707c0a729/

...