В чем разница между __deref_out_opt и __deref_opt_out?
В чем разница между следующими аннотациями SAL?
void foo(__deref_out_opt PSTR* bar);
void foo(__deref_opt_out PSTR* bar);
1 ответ
Решение
PSTR*
Параметр out означает, что вызывающая сторона передает в буфер, который получает указатель на строку.
В __deref_out_opt строка является необязательной (функция помещает NULL в предоставленный вызывающим буфер).
В __deref_opt_out буфер является необязательным (вызывающий передает NULL, чтобы указать на отсутствие интереса к выходному значению).
Предположительно, можно объединить эти понятия, должно быть __deref_opt_out_opt
модификатор для этого.