C28164
advertencia C28164: El argumento se está pasando a una función que espera un puntero a un objeto (no un puntero a un puntero)
Esta advertencia se muestra cuando un puntero a un puntero se utiliza en una llamada a una función que espera un puntero a un objeto.
la función toma un valor PVOID en esta posición.Generalmente, esto indica que &pXXX se usó cuando pXXX fue requerido.
Algunas funciones polimórficas (las funciones que se pueden evaluar y ser aplicadas a valores de distintos tipos) se implementan en C utilizando un argumento PVOID que toma cualquier tipo de puntero.Sin embargo, esto permite que el programador codifique un puntero a un puntero sin producir un error del compilador, aunque este tipo no sea el adecuado.
Ejemplo
El siguiente ejemplo de código genera la advertencia:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(&pFm, UserRequest, UserMode, false, NULL);
El ejemplo de código siguiente evita la advertencia:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(pFm, UserRequest, UserMode, false, NULL);