Condividi tramite


C28175

avviso C28175: il membro dello struct non deve essere accessibile da un driver

Questo avviso indica che un driver ha eseguito l'accesso a un membro della struttura non documentata a cui i driver non devono mai accedere.

I driver non devono mai accedere al membro della struttura non documentata specificato. Per la maggior parte dei membri non documentati di strutture opache o parzialmente opache, questo divieto è assoluto. Tuttavia, i driver possono accedere a determinati membri della struttura non documentati dall'interno di determinate routine. Ad esempio, il driver può accedere ai membri non documentati della struttura di DRIVER_OBJECT parzialmente opaca solo all'interno di una routine DRIVER_INITIALIZE o DRIVER_UNLOAD.

A volte il motivo per cui questa regola si applica a un determinato membro non è immediatamente ovvia. Ad esempio, un'istanza in cui si verifica si trova con il membro NextDevice di _DEVICE_OBJECT. In questo caso, è necessario usare un blocco per accedere in modo sicuro a questo elenco collegato, ma tale blocco non è disponibile per il driver. In questo caso, la violazione di questa regola causa errori poco frequenti ma difficili da diagnosticare. Il modo corretto per accedere ai dispositivi correlati consiste nell'usare la funzioneIoEnumerateDeviceObjectList.