Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het onderliggende stuurprogramma voor opslagpoorten is verantwoordelijk voor het opnieuw proberen van aanvragen als er apparaatfouten optreden die betrekking hebben op het verzenden van gegevens in de bus, waaronder fouten met buspariteit, selectietime-outs en doel-/controllerbezette fouten. Als nieuwe pogingen mislukken, voltooit het stuurprogramma van de opslagpoort de aanvraag met een juiste fout en registreert de I/O-fout ook.
Een stuurprogramma voor opslagklasse mag nooit opnieuw proberen een aanvraag uit te voeren die het poortstuurprogramma al heeft mislukt vanwege een van de voorgaande fouten.
Een opslagklasse-stuurprogramma is verantwoordelijk voor het opnieuw proberen van aanvragen die mislukken vanwege apparaatspecifieke fouten, doel-/controllerfouten, behalve wanneer de doel-/controller bezet is, busherstel of time-outs van aanvragen. Over het algemeen kan een RetryRequest-routine een dergelijke IRP opnieuw indienen bij het volgende lagere stuurprogramma en ervoor zorgen dat de SRB aan het hoofd van de LU-specifieke wachtrij van het poortstuurprogramma wordt geplaatst.
In het bijzonder moet een RetryRequest-routine het volgende doen:
Zorg ervoor dat voor een gedeeltelijke overdrachtsaanvraag de juiste waarden zijn ingesteld voor het beginadres en de lengte.
Zet de SrbStatus en ScsiStatus-leden van de SRB op nul.
Stel het SrbFlags-lid in, indien nodig voor dit apparaat.
Stel de I/O-stacklocatie in voor het poortstuurprogramma in de IRP, zoals reeds beschreven in Dispatch-routines van de Storage Class Driver via SplitTransferRequest-routine van de Storage Class Driver.
Roep IoSetCompletionRoutine aan voor de IRP, omdat de IoCompletion-routine van het stuurprogramma de SRB moet vrij maken voordat de IRP wordt geretourneerd. De IoCompletion-routine moet de aanvraag mogelijk meerdere keren opnieuw proberen of de InterpretRequestSense-routine of ReleaseQueue van de driver aanroepen.
Geef de aanvraag door aan het volgende lagere stuurprogramma met IoCallDriver.