Предупреждение C28164

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

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

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

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

Пример

Следующий пример кода вызывает появление этого предупреждения.

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

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

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