ChangerMoveMedium-Funktion (mcd.h)
ChangerMoveMedium behandelt die gerätespezifischen Aspekte einer 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 die IRP.
Rückgabewert
ChangerMoveMedium gibt die vom Systemporttreiber zurückgegebene 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
Hinweise
Diese Routine ist erforderlich.
ChangerMoveMedium verschiebt ein Medienelement von einem Element in ein anderes.
Der Changer-Klassentreiber überprüft die Länge des Eingabepuffers am E/A-Stapelspeicherort, bevor ChangerMoveMedium aufgerufen wird. Irp-SystemBuffer>zeigt auf eine CHANGER_MOVE_MEDIUM-Struktur, die das Transportelement, die Quelle, das Ziel und ob das Medium umgedreht werden soll.
ChangerMoveMedium überprüft zunächst, 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 zum Verschieben des Medienteils erstellt und an den Systemporttreiber gesendet.
ChangerMoveMedium legt das Feld Information im E/A-status-Block auf sizeof(CHANGER_MOVE_MEDIUM) fest, bevor zum Changer-Klassentreiber zurückzukehren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |