C28175

警告 C28175:驱动程序不应访问结构的成员

此警告指示驱动程序访问了驱动程序不应访问的未记录结构成员。

驱动程序不应访问指定的未记录结构成员。 对于大多数无证或部分不透明结构的成员,这种禁令是绝对的。 但是,驱动程序可以从特定例程内访问某些未记录的结构成员。 例如,驱动程序可能仅在DRIVER_INITIALIZE或DRIVER_UNLOAD例程内访问部分不透明 DRIVER_OBJECT 结构的未记录成员。

有时,此规则适用于特定成员的原因并不明显。 例如,发生此情况的一个实例是 NextDevice 成员 _DEVICE_OBJECT。 在此实例中,锁应用于安全访问此链接列表,但该锁对驱动程序不可用。 在这种情况下,违反此规则会导致不频繁但难以诊断的失败。 访问相关设备的正确方法是使用 IoEnumerateDeviceObjectList 函数。