Partager via


C28175

avertissement C28175 : Le membre de struct ne doit pas être accessible par un pilote

Cet avertissement indique qu’un pilote a accédé à un membre de structure non documenté auquel les pilotes ne doivent jamais accéder.

Les pilotes ne doivent jamais accéder au membre de structure non documenté spécifié. Pour la plupart des membres non documentés de structures opaques ou partiellement opaques, cette interdiction est absolue. Toutefois, les pilotes peuvent accéder à certains membres de structure non documentés à partir de routines particulières. Par exemple, le pilote peut accéder aux membres non documentés de la structure de DRIVER_OBJECT partiellement opaque uniquement dans une routine DRIVER_INITIALIZE ou DRIVER_UNLOAD.

Parfois, la raison pour laquelle cette règle s’applique à un membre particulier n’est pas immédiatement évidente. Par exemple, l’un des instance où cela se produit concerne le membre NextDevice de _DEVICE_OBJECT. Dans cette instance, un verrou doit être utilisé pour accéder en toute sécurité à cette liste liée, mais ce verrou n’est pas disponible pour le pilote. Dans ce cas, la violation de cette règle entraîne des échecs peu fréquents mais difficiles à diagnostiquer. Le bon moyen d’accéder aux appareils associés consiste à utiliser la fonction IoEnumerateDeviceObjectList .