| Предыдущий | Следующий |
| STATUS_LOG_NOT_ENOUGH_CONTAINERS | STATUS_LOG_CLIENT_NOT_REGISTERED |
STATUS_LOG_CLIENT_ALREADY_REGISTERED
STATUS_LOG_CLIENT_ALREADY_REGISTERED означает, что вызывающая сторона попыталась зарегистрировать управляемого клиента CLFS, который уже известен потоку. Управляемая регистрация является частью модели взаимодействия для обработки заполненного журнала и продвижения хвоста, а не маркером разрешения на отдельную операцию.
Повторная регистрация часто указывает на путаницу жизненного цикла: путь повторной попытки мог снова выполнить инициализацию после частичного успеха либо два компонента используют одну идентичность, не согласовав владение. Повторять регистрацию до успеха — значит скрывать эту ошибку проектирования.
Что проверить
- Отслеживайте идентичность клиента, поток, дескриптор регистрации и владельца по всем путям инициализации и восстановления.
- Делайте регистрацию идемпотентной только тогда, когда компонент может доказать, что существующая регистрация относится к его текущему жизненному циклу.
- Отменяйте регистрацию через владельца, создавшего управляемого клиента; не удаляйте общую регистрацию лишь потому, что другой компонент обнаружил дубликат.
Ссылки
- Microsoft: ClfsMgmtHandleLogFileFull и обработка заполненного журнала
- Microsoft: контейнеры CLFS, закрепление хвоста и управляемые клиенты
- Microsoft: API контейнеров, резервирования, добавления и сброса
- Wine: независимые определения констант NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.