Delen via


Interne wachtrij van stuurprogramma voor SCSI-poort vergrendelen

Het klassestuurprogramma en andere stuurprogramma's op een hoger niveau kunnen afdwingen dat de SCSI-poort de verwerking van de aanvragen in de wachtrij stopt. Het klassestuurprogramma stopt de wachtrij van de SCSI-poort door deze een SRB van het type SRB_FUNCTION_LOCK_QUEUE te verzenden. Het klassestuurprogramma stopt doorgaans de verwerking van aanvragen in de wachtrij van de SCSI-poort om de energiestatus van een apparaat te wijzigen. Nadat de energiestatus van het apparaat is gewijzigd, ontgrendelt het klassestuurprogramma de wachtrij. De volgorde is als volgt:

  1. Klassestuurprogramma vergrendelt de wachtrij van de SCSI-poort (met behulp van IRP_MJ_SCSI met een SRB-functiewaarde van SRB_FUNCTION_LOCK_QUEUE).

  2. Het klassestuurprogramma vraagt om een wijziging van de energiestatus (met behulp van IRP_MJ_SCSI met de vlag SRB_FLAGS_BYPASS_LOCKED_QUEUE ingesteld om ervoor te zorgen dat er geen energie-IRP in de wachtrij staat).

  3. Klassestuurprogramma ontgrendelt de wachtrij van de SCSI-poort (IRP_MJ_SCSI met een SRB-functiewaarde van SRB_FUNCTION_UNLOCK_QUEUE en de SRB_FLAGS_BYPASS_LOCKED_QUEUE vlagset).

Zodra de wachtrij is ontgrendeld, hervat de SCSI-poort de verwerking van in de wachtrij geplaatste SRBs. Een klassestuurprogramma mag niet proberen een wachtrij te omzeilen die is vergrendeld door een ander stuurprogramma.

Zie ReleaseQueue Routinevoor meer informatie over het ontgrendelen van wachtrijen vanuit het perspectief van het klassestuurprogramma.