C28164
upozornění C28164: Argument je předáván funkci, která očekává ukazatel na objekt (ne ukazatel na ukazatel)
Toto upozornění je nahlášeno při použití ukazatele na ukazatel v rámci volání funkce, která očekává ukazatel na objekt.
Funkce v této pozici přebírá PVOID.Obvykle to znamená, že bylo použito &pXXX v době, kdy byl vyžadován pXXX.
Některé polymorfní funkce (funkce, které slouží k evaluaci a aplikaci na hodnoty různých typů) jsou implementovány v jazyce C pomocí argumentu PVOID, který přebírá libovolný typ ukazatele.To však umožňuje programátorovi naprogramovat ukazatel na ukazatel, aniž by došlo k chybě při kompilaci, i když není tento typ vhodný.
Příklad
Následující ukázka kódu generuje toto upozornění:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(&pFm, UserRequest, UserMode, false, NULL);
Následující ukázka kódu předchází tomuto upozornění:
PFAST_MUTEX pFm;
...
KeWaitForSingleObject(pFm, UserRequest, UserMode, false, NULL);