C28175
upozornění C28175: Člen struktury by neměl být přístupný ovladačem
Toto upozornění značí, že ovladač přistupoval k členu bezdokumentované struktury, ke kterému by ovladače nikdy neměly přistupovat.
Ovladače by nikdy neměly přistupovat k zadanému členu bezdokumentované struktury. U většiny nezdokumentovaných členů neprůkazných nebo částečně neprůhlených struktur je tento zákaz absolutní. Ovladače však můžou přistupovat k určitým nezdokumentovaným členům struktury z konkrétních rutin. Ovladač může například přistupovat k nezdokumentovaným členům částečně neprůžné struktury DRIVER_OBJECT pouze v rámci DRIVER_INITIALIZE nebo DRIVER_UNLOAD rutiny.
Někdy důvod, proč se toto pravidlo vztahuje na konkrétního člena, není okamžitě zřejmé. Například jedna instance, kde k tomu dochází, je s NextDevice členem _DEVICE_OBJECT. V tomto případě by se zámek měl použít k bezpečnému přístupu k tomuto propojenému seznamu, ale tento zámek není pro ovladač dostupný. V tomto případě porušení tohoto pravidla způsobuje zřídka, ale těžko diagnostikovat selhání. Správným způsobem přístupu k souvisejícím zařízením je použít funkci IoEnumerateDeviceObjectList.