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

 
Также может означать:
КонстантаТипОС
ERROR_SUCCESSОшибка WindowsWindows
STATUS_WAIT_0NTSTATUSWindows
kOSReturnSuccessКод возврата ядра macOSmacOS
KERN_SUCCESSКод возврата ядра macOSmacOS
MACH_MSG_SUCCESSКод возврата ядра macOSmacOS
ippStsNoErrСтатус Intel IPPЛюбая
S_OKHRESULTWindows
hrNoneHRESULTWindows
Предыдущий Следующий
STATUS_WAIT_0

STATUS_SUCCESS

Успешный NTSTATUS не означает, что каждый выходной результат семантически полон

STATUS_SUCCESS является каноническим нулевым значением NTSTATUS и удовлетворяет проверке NT_SUCCESS . Важно различать успешное завершение на уровне вызова и контракт вызванной операции. API может завершиться успешно, но вернуть ноль элементов, сокращённый набор результатов, флаг состояния или другой выходной параметр, который вызывающий код всё равно обязан проверить.

Не сравнивайте каждый NTSTATUS только с нулём, если API документирует информационные результаты или предупреждения. И наоборот, не считайте, что успешный вызов обязательно заполнил необязательные указатели или произвёл ожидаемый побочный эффект, если это прямо не гарантировано контрактом API. При диагностике неожиданного успешного результата сохраняйте точное имя API, класс информации, длину выходных данных и поля количества.

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

  • Проверьте контракт успешного завершения конкретного API и все выходные поля количества или длины.
  • Используйте NT_SUCCESS только там, где API допускает весь диапазон успешных значений NTSTATUS.
  • Записывайте возвращённый статус и смысловые выходные значения раздельно, чтобы успешная операция без фактического действия была заметна.

Ссылки


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