Freigeben über


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

Weitere Informationen

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS