C28164
C28164 de aviso: O argumento está sendo passado para uma função que espera um ponteiro para um objeto (não um ponteiro para um ponteiro)
Esse erro é relatado quando um ponteiro para um ponteiro é usado em uma chamada para uma função que está aguardando um ponteiro para um objeto.
A função usa um PVOID nessa posição.Geralmente, isso indica que o &pXXX esteve usado quando pXXX é necessário.
Algumas funções polimórficas (às funções que pode ser avaliada, e são aplicadas a diferentes tipos de valores,) são implementadas em C usando um argumento de PVOID que recebe qualquer tipo ponteiro.No entanto, isso permite que o programador codificar um ponteiro para um ponteiro sem causar um erro do compilador, mesmo quando esse tipo não é apropriado.
Exemplo
O exemplo de código gera este aviso:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(&pFm, UserRequest, UserMode, false, NULL);
O exemplo de código a seguir evita o aviso:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(pFm, UserRequest, UserMode, false, NULL);