Поделиться через


C28164

Предупреждение C28164: Аргумент передается в функцию, которая ожидает указатель на объект (а не указатель на указатель)

Это предупреждение возникает, когда указатель на указатель используется при вызове функции, ожидающей указатель на объект.

функция принимает PVOID в этой позиции.Обычно это означает, что вместо необходимой аннотации pXXX использовалась аннотация &pXXX.

Некоторые полиморфные функции (функции, которые могут выдавать результат и применяться к значениям различных типов) реализованы в C с помощью аргумента PVOID, который принимает любой тип указателя.Однако это позволяет программисту реализовать указатель на указатель, не вызывая ошибку компилятора, даже если этот тип не подходит.

Пример

Это предупреждение появляется в следующем примере кода:

PFAST_MUTEX pFm;
...
KeWaitForSingleObject(&pFm, UserRequest, UserMode, false, NULL);

В следующем примере кода во избежание предупреждение:

PFAST_MUTEX pFm;
...
KeWaitForSingleObject(pFm, UserRequest, UserMode, false, NULL);