다음을 통해 공유


C28175

경고 C28175: 드라이버에서 구조체의 멤버에 액세스해서는 안 됩니다.

이 경고는 드라이버가 절대 액세스해서는 안 되는 문서화되지 않은 구조체 멤버에 액세스했음을 나타냅니다.

드라이버는 지정된 문서화되지 않은 구조체 멤버에 액세스해서는 안 됩니다. 불투명하거나 부분적으로 불투명한 구조의 대부분의 문서화되지 않은 구성원의 경우,이 금지는 절대적이다. 그러나 드라이버는 특정 루틴 내에서 문서화되지 않은 특정 구조체 멤버에 액세스할 수 있습니다. 예를 들어 드라이버는 DRIVER_INITIALIZE 또는 DRIVER_UNLOAD 루틴 내에서만 부분적으로 불투명 한 DRIVER_OBJECT 구조의 문서화되지 않은 멤버에 액세스할 수 있습니다.

경우에 따라 이 규칙이 특정 멤버에 적용되는 이유가 즉시 명확하지 않습니다. 예를 들어 이 문제가 발생하는 instance 하나는 _DEVICE_OBJECTNextDevice 멤버를 사용하는 것입니다. 이 instance 잠금을 사용하여 이 연결된 목록에 안전하게 액세스해야 하지만 해당 잠금은 드라이버에서 사용할 수 없습니다. 이 경우 이 규칙을 위반하면 드물지만 진단하기 어려운 오류가 발생합니다. 관련 디바이스에 액세스하는 적절한 방법은 IoEnumerateDeviceObjectList 함수를 사용하는 것입니다.