Фрагмент __success(return >= 0)
является аннотацией SAL, которая дает подсказку инструменту PreFast о том, какова предполагаемая семантика макроса.Это используется для статического анализа и выявления потенциальных ошибок.
Макро-тесты NT_SUCCESS
для >= 0
, поскольку существуют коды успеха, отличные от STATUS_SUCCESS
.Некоторые коды успеха включают дополнительную информацию о результате операции, хотя на данный момент я могу думать только о S_FALSE
, который уведомляет вызывающего абонента о том, что операция прошла успешно, но результат был ложным.Как правило, коды успеха равны или превышают ноль, а коды ошибок меньше нуля.
[Строго говоря, S_FALSE
- это HRESULT
, а не NT_STATUS
, хотя дватипы имеют одинаковый размер и сходные условные обозначения.]