Delen via


C28175

waarschuwing C28175: Het lid van de struct mag niet worden geopend door een stuurprogramma

Deze waarschuwing geeft aan dat een stuurprogramma toegang heeft tot een niet-gedocumenteerd structuurlid waartoe stuurprogramma's nooit toegang mogen hebben.

Stuurprogramma's mogen nooit toegang krijgen tot het opgegeven niet-gedocumenteerde structuurlid. Voor de meeste ongedocumenteerde leden van ondoorzichtige of gedeeltelijk ondoorzichtige structuren is dit verbod absoluut. Stuurprogramma's hebben echter toegang tot bepaalde niet-gedocumenteerde structuurleden vanuit bepaalde routines. Het stuurprogramma heeft bijvoorbeeld alleen toegang tot de niet-gedocumenteerde leden van de gedeeltelijk ondoorzichtige DRIVER_OBJECT structuur binnen een DRIVER_INITIALIZE of DRIVER_UNLOAD routine.

Soms is de reden waarom deze regel van toepassing is op een bepaald lid niet onmiddellijk duidelijk. Een exemplaar waarin dit gebeurt, is bijvoorbeeld het NextDevice- lid van _DEVICE_OBJECT. In dit geval moet een vergrendeling worden gebruikt om veilig toegang te krijgen tot deze gekoppelde lijst, maar die vergrendeling is niet beschikbaar voor het stuurprogramma. In dit geval veroorzaakt het schenden van deze regel onregelmatige maar moeilijk te diagnosticeren fouten. De juiste manier om toegang te krijgen tot de gerelateerde apparaten is door de functie IoEnumerateDeviceObjectList te gebruiken.