C28164
aviso C28164: O argumento está sendo passado para uma função que espera um ponteiro para um objeto (não um ponteiro para um ponteiro)
Esse aviso é relatado quando um ponteiro para um ponteiro é usado em uma chamada a uma função que está esperando um ponteiro para um objeto.
A função pega um PVOID nessa posição.Geralmente, isso indica que &XXX p esteve usado quando pXXX é necessário.
Algumas funções polimorfos (às funções que pode ser avaliada, e sejam aplicadas a, valores de tipos diferentes) são implementadas em C usando um argumento de PVOID que usa qualquer tipo de ponteiro.No entanto, isso permite que o programador codificar um ponteiro para um ponteiro sem gerar um erro do compilador, mesmo quando esse tipo não é apropriado.
Exemplo
O exemplo de código gerenciado esse 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);