ChangerClassSendSrbSynchronous-Funktion (mcd.h)
Die ChangerClassSendSrbSynchronous-Routine sendet synchron einen SRB an ein angegebenes Gerät.
Syntax
NTSTATUS ChangerClassSendSrbSynchronous(
[in] PDEVICE_OBJECT DeviceObject,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID Buffer,
[in] ULONG BufferSize,
[in] BOOLEAN WriteToDevice
);
Parameter
[in] DeviceObject
Zeiger auf das funktionale Geräteobjekt des Zielgeräts.
[in] Srb
Zeiger auf einen teilweise initialisierten SCSI-Anforderungsblock (SRB), der an das Zielgerät gesendet werden soll.
[in] Buffer
Gibt die Adresse des Puffers an, auf den Srb-DataBuffer> verweisen soll. ChangerClassSendSrbSynchronous erstellt eine MDL für diesen Puffer und übergibt sie an den Zielgerätetreiber im SRB-IRP.
[in] BufferSize
Gibt die Länge des Puffers in Bytes an.
[in] WriteToDevice
Gibt einen Schreibvorgang an, wenn TRUE und Lesevorgang bei FALSE.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn der SRB erfolgreich übertragen wurde, oder den entsprechenden Fehlercode, wenn der SRB aus irgendeinem Grund nicht gesendet werden kann.
Hinweise
Changer-Miniklassentreiber können diese Klassentreiberroutine in Microsoft Windows XP und höheren Betriebssystemen aufrufen. Miniklassentreiber sollten diese Routine verwenden, um einen SRB an den Porttreiber zu senden, anstatt die classpnp.sys Bibliotheksroutine ClassSendSrbSynchronous direkt aufzurufen. Obwohl classpnp.sys mit dem Windows Driver Kit (WDK) ausgeliefert wird, handelt es sich nicht um eine unterstützte API, und Treiber, die die Routinen dieser Bibliothek direkt aufrufen, funktionieren in zukünftigen Releases möglicherweise nicht ordnungsgemäß.
ChangerClassSendSrbSynchronous beendet die Initialisierung des teilweise initialisierten SRB und legt die Flags des SRB mit den werten fest, die im Geräteobjekt des Ziels angegeben sind. ChangerClassSendSrbSynchronous erstellt das IRP, das verwendet wird, um den SRB an das Zielgerät zu übermitteln, sendet das IRP und verarbeitet dann die Vervollständigung des IRP.
Wenn die IRP fehlschlägt und die Sense-Anforderungsdaten angeben, dass der IRP erneut ausgeführt werden soll, sendet ChangerClassSendSrbSynchronous den IRP erneut.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | mcd.h (include Mcd.h, Ntddchgr.h) |
Bibliothek | Mcd.lib |