ChangerMoveMedium-Funktion (mcd.h)
ChangerMoveMedium behandelt die gerätespezifischen Aspekte eines Gerätesteuerungs-IRP mit dem IOCTL-Code IOCTL_CHANGER_MOVE_MEDIUM.
Syntax
NTSTATUS ChangerMoveMedium(
[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
ChangerMoveMedium den vom Systemporttreiber zurückgegebenen Status oder einen der folgenden Werte zurück:
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
Bemerkungen
Diese Routine ist erforderlich.
ChangerMoveMedium ein Medienelement von einem Element in ein anderes verschiebt.
Der Änderungsklassentreiber überprüft die Eingabepufferlänge an der E/A-Stapelposition, bevor ChangerMoveMediumaufgerufen wird. Irp-->SystemBuffer-verweist auf eine CHANGER_MOVE_MEDIUM Struktur, die das Transportelement, die Quelle, das Ziel angibt und ob das Medium gekippt werden soll.
ChangerMoveMedium zuerst überprüft, ob die Transport-, Quell- und Zielelementadressen gültig sind, und konvertiert dann nullbasierte Elementadressen in gerätespezifische Adressen. Anschließend wird ein SRB mit einem CDB erstellt, um den Medienteil zu verschieben und an den Systemporttreiber zu senden.
ChangerMoveMedium legt das Feld Information im E/A-Statusblock auf Größe(CHANGER_MOVE_MEDIUM) fest, bevor sie zum Änderungsklassentreiber zurückkehren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL- | PASSIVE_LEVEL |