ChangerReinitializeUnit-Funktion (mcd.h)
ChangerReinitializeUnit behandelt 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 das IRP.
Rückgabewert
Wenn der Changer das Realibrating eines Transportelements unterstützt, gibt ChangerReinitializeUnit den STATUS_vom Systemporttreiber zurückgegebenen XXX- Wert zurück, oder einen der folgenden Werte:
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.
Bemerkungen
Diese Routine ist erforderlich.
ChangerReinitializeUnit bewirkt, dass der Changer das Transportelement neu kalibriert. Je nach Änderung kann dies den Transport an eine "Home"-Position zurückgeben. Der Änderungsklassentreiber ruft in der Regel ChangerReinitializeUnit auf, nachdem der Changer eingeschaltet wurde oder eine aufrufende Anwendung einen Wiederherstellungsvorgang initiiert hat. Das CHANGER_DEVICE_REINITIALIZE_CAPABLE-Kennzeichen in Features0 von GET_CHANGER_PARAMETERS gibt an, ob der Transport des Änderungers unter diesen Umständen eine Neukalibrierung unterstützt.
Der Änderungsklassentreiber überprüft die Länge des Eingabepuffers an der E/A-Stapelposition, bevor ChangerReinitializeUnitaufgerufen wird. Irp-->SystemBuffer- verweist auf eine CHANGER_ELEMENT Struktur, die das zu relibrierende Element angibt.
ChangerReinitializeUnit erstellt einen SRB mit einem CDB, um das Transportelement zu positionieren und an den Systemporttreiber zu senden.
ChangerReinitializeUnit legt das Feld Information im E/A-Statusblock auf Größe(CHANGER_ELEMENT) fest, bevor sie zum Änderungsklassentreiber zurückkehren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL- | PASSIVE_LEVEL |