共用方式為


C28175

警告 C28175:驅動程式不應存取結構的成員

這個警告表示驅動程式存取了驅動程式不應存取的未記載結構成員。

驅動程式不應存取指定的未記載結構成員。 對於大部分未記載或部分不透明結構的成員而言,這是絕對的。 不過,驅動程式可能會從特定例程記憶體取特定未記載的結構成員。 例如,驅動程式只能在DRIVER_INITIALIZE或DRIVER_UNLOAD例程記憶體取部分不透明 DRIVER_OBJECT 結構的未記載成員。

有時候,此規則適用於特定成員的原因並不明顯。 例如,發生此情況的一個實例是_DEVICE_OBJECTNextDevice 成員。 在此實例中,應該使用鎖定安全地存取此連結清單,但該鎖定不適用於驅動程式。 在此情況下,違反此規則會造成不常但難以診斷的失敗。 存取相關裝置的適當方式是使用 IoEnumerateDeviceObjectList 函式。