Share via


C28175

aviso C28175: o membro do struct não deve ser acessado por um driver

Esse aviso indica que um driver acessou um membro de estrutura não documentado que os drivers nunca devem acessar.

Os drivers nunca devem acessar o membro de estrutura não documentado especificado. Para a maioria dos membros não documentados de estruturas opacas ou parcialmente opacas, essa proibição é absoluta. No entanto, os drivers podem acessar determinados membros de estrutura não documentados de dentro de rotinas específicas. Por exemplo, o driver pode acessar os membros não documentados da estrutura de DRIVER_OBJECT parcialmente opaca somente dentro de uma rotina de DRIVER_INITIALIZE ou DRIVER_UNLOAD.

Às vezes, a razão pela qual essa regra se aplica a um membro específico não é imediatamente óbvia. Por exemplo, uma instância em que isso ocorre é com o membro NextDevice de _DEVICE_OBJECT. Nesse caso, um bloqueio deve ser usado para acessar com segurança essa lista vinculada, mas esse bloqueio não está disponível para o driver. Nesse caso, violar essa regra causa falhas pouco frequentes, mas difíceis de diagnosticar. A maneira adequada de acessar os dispositivos relacionados é usar a função IoEnumerateDeviceObjectList .