C28175

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

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

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

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