Delen via


Over opslagstuurprogramma's en apparaatobjecten

De opslagapparaatstack bestaat uit een structuur van apparaatobjecten die zijn gemaakt door de stuurprogramma's die betrokken zijn bij het verwerken van I/O naar opslagapparaten op het systeem. De wortel van deze boom is een functioneel apparaatobject (FDO) voor een opslagadapter of voor een andere stuurprogrammastack die is geïntegreerd met de opslagstack. De bladeren van deze structuur zijn apparaatobjecten voor gebruik door bestandssystemen en toepassingen in de gebruikersmodus.

Net als elk PnP-stuurprogramma voegt een stuurprogramma voor opslagklasse of opslagfilter zichzelf toe aan de structuur in de AddDevice-routine door een apparaatobject te maken met IoCreateDevice- en deze aan de apparaatstack te koppelen met IoAttachDeviceToDeviceStack, met behulp van de aanwijzer naar het apparaatobject dat is doorgegeven aan de AddDevice-routine van het stuurprogramma door de PnP-manager bij initialisatie. IoAttachDeviceToDeviceStack het nieuwe apparaatobject koppelt aan de huidige bovenkant van de apparaatstack.

Een tape miniklasse, medium changer miniklasse of SCSI-minipoortstuurprogramma is niet vereist om een apparaatobject te maken en deze aan de apparaatstack te koppelen. In plaats daarvan verwerkt de door het systeem geleverde tapeklasse, wijzigingsklasse of SCSI-poortstuurprogramma deze taken namens de miniklasse/miniport, waarbij miniklasse/minipoortstuurprogrammaroutines worden aangeroepen om de gegevens te verzamelen die nodig zijn om het apparaatobject te maken.

Stuurprogramma's voor opslagpoorten maken fysieke apparaatobjecten (PPO's) van het type FILE_DEVICE_MASS_STORAGE. De schijfklasse, CD-ROM klasse, tapeklasse- en wijzigingsklassestuurprogramma's maken respectievelijk FDOS's van typen FILE_DEVICE_DISK, FILE_DEVICE_CD_ROM, FILE_DEVICE_TAPE en FILE_DEVICE_CHANGER.

Zie de ontwerprichtlijnen voor PnP-stuurprogramma'svoor meer informatie over het ontwerpen van PnP-stuurprogramma's. Zie de Plug and Play Routinesvoor informatie over PnP-gerelateerde IoXxx routines.