ChangerReinitializeUnit-Funktion (mcd.h)
ChangerReinitializeUnit verarbeitet die gerätespezifischen Aspekte eines Gerätesteuerungs-IRP mit dem IOCTL-Code IOCTL_CHANGER_REINITIALIZE_TRANSPORT.
Syntax
NTSTATUS ChangerReinitializeUnit(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Parameter
[in] DeviceObject
Zeiger auf das Geräteobjekt, das den Changer darstellt.
[in] Irp
Zeiger auf den IRP.
Rückgabewert
Wenn der Changer das Realibrating eines Transportelements unterstützt, gibt ChangerReinitializeUnit den vom Systemporttreiber zurückgegebenen STATUS_XXX-Wert oder einen der folgenden Werte zurück:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
Wenn der Changer das Realibrating eines Transportelements nicht unterstützt, gibt ChangerReinitializeUnit STATUS_INVALID_DEVICE_REQUEST zurück.
Hinweise
Diese Routine ist erforderlich.
ChangerReinitializeUnit bewirkt, dass der Changer sein Transportelement neu kalibriert. Je nach Umwechslung kann der Transport in eine "Home"-Position zurückgeführt werden. Der Changer-Klassentreiber ruft in der Regel ChangerReinitializeUnit auf, nachdem der Changer eingeschaltet wurde oder eine aufrufende Anwendung einen Wiederherstellungsvorgang initiiert hat. Das CHANGER_DEVICE_REINITIALIZE_CAPABLE-Flag in Features0 von GET_CHANGER_PARAMETERS gibt an, ob der Transport des Wechsers unter diesen Umständen eine Neukalibrierung unterstützt.
Der Changer-Klassentreiber überprüft die Eingabepufferlänge im E/A-Stapelspeicherort, bevor ChangerReinitializeUnit aufgerufen wird. Irp-SystemBuffer> verweist auf eine CHANGER_ELEMENT Struktur, die das element angibt, das neu kalibriert werden soll.
ChangerReinitializeUnit erstellt einen SRB mit einem CDB, um das Transportelement zu positionieren, und sendet es an den Systemporttreiber.
ChangerReinitializeUnit legt das Feld Information im E/A-status-Block auf sizeof(CHANGER_ELEMENT) fest, bevor es zum Changerklassentreiber zurückkehrt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |