Что означает код NTSTATUS 0xC0000043 (STATUS_SHARING_VIOLATION)?

 
Предыдущий Следующий
STATUS_INVALID_PORT_HANDLE STATUS_QUOTA_EXCEEDED

STATUS_SHARING_VIOLATION

Что означает STATUS_SHARING_VIOLATION

STATUS_SHARING_VIOLATION возникает, когда новый open/create/rename/delete запрос несовместим с режимами доступа уже открытого file handle. Это не обязательно означает, что файл «занят» в бытовом смысле.

Что проверить

  • Запрошенные desired access и share flags нового открытия.
  • Какие процессы и handles уже держат файл и какие share modes они разрешили.
  • Для rename/delete — наличие FILE_SHARE_DELETE, даже если параллельное чтение разрешено.

Как исправлять

Закройте или измените только подтверждённый конфликтующий handle. Ограниченный retry оправдан, если известный владелец гарантированно скоро завершает операцию; постоянную несовместимость share policy повторение не исправит. Для собственного приложения проверьте все error/cancel paths на своевременное закрытие handles и не удерживайте файл дольше фактической транзакции.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.