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 che 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 opache, questo divieto è assoluto. Tuttavia, i driver possono accedere a determinati membri della struttura non documentati da determinate routine. Ad esempio, il driver può accedere ai membri non documentati della struttura 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 evidente. Ad esempio, un'istanza in cui si verifica si trova con il membro NextDevice di _DEVICE_OBJECT. In questa istanza, un blocco deve essere usato 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 raramente ma difficili da diagnosticare. Il modo appropriato per accedere ai dispositivi correlati consiste nell'usare la funzione IoEnumerateDeviceObjectList .