Как ответил Nercolis, это атрибуты аннотации SAL. Однако это не просто внутренний или просто документация API . Настоящая цель - Анализ кода . Когда вы строите проект с опцией компилятора / analysis (Свойства проекта, Анализ кода -> Общие), они играют важную роль в поиске проблем кодирования.
Например, если конкретный аргумент-указатель говорит __in
, ему нельзя передавать нулевой указатель. Функция не будет проверять на ноль и может вызвать SEH. __in_opt
аргумент может быть нулевым. Когда компилятор обнаруживает какую-либо проблему, он сообщает об этом как предупреждение. См. эту статью .