警告 C28175: 構造体のメンバーにドライバーからアクセスしないでください
この警告は、ドライバーがアクセスしてはならない文書化されていない構造体メンバーにドライバーがアクセスしたことを示します。
ドライバーは、指定された文書化されていない構造体のメンバーにアクセスしないでください。 非透過的または部分的に不透明な構造のほとんどの文書化されていないメンバーでは、この禁止は絶対です。 ただし、ドライバーは、特定のルーチン内から特定の文書化されていない構造体のメンバーにアクセスできます。 たとえば、ドライバーは、DRIVER_INITIALIZEまたはDRIVER_UNLOAD ルーチン内でのみ、部分的に不透明な DRIVER_OBJECT 構造体の文書化されていないメンバーにアクセスできます。
この規則が特定のメンバーに適用される理由がすぐには明らかでない場合があります。 たとえば、これが発生するインスタンスの 1 つは、_DEVICE_OBJECTの NextDevice メンバーです。 この例では、このリンクされたリストに安全にアクセスするためにロックを使用する必要がありますが、そのロックはドライバーでは使用できません。 この場合、この規則に違反すると、まれですが、診断が困難なエラーが発生します。 関連するデバイスにアクセスする適切な方法は、IoEnumerateDeviceObjectList 関数を使用することです。