Partilhar via


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);