Avertissement C28164

L’argument est passé à une fonction qui attend un pointeur vers un objet (pas un pointeur vers un pointeur)

Cet avertissement est signalé lorsqu’un pointeur vers un pointeur est utilisé dans un appel à une fonction qui attend un pointeur vers un objet.

La fonction prend une PVOID position dans cette position. En règle générale, elle indique qu’elle &pXXX a été utilisée quand pXXX elle est requise.

Certaines fonctions polymorphes (fonctions pouvant être évaluées et appliquées à des valeurs de différents types) sont implémentées en C à l’aide d’un PVOID argument qui accepte n’importe quel type de pointeur. Toutefois, cela permet au programmeur de coder un pointeur vers un pointeur sans provoquer d’erreur du compilateur, même si ce type n’est pas approprié.

Exemple

L'exemple de code suivant génère cet avertissement :

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

L’exemple de code suivant évite l’avertissement :

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