Share via


ChangerExchangeMedium-Funktion (mcd.h)

ChangerExchangeMedium behandelt die gerätespezifischen Aspekte eines IRP für die Gerätesteuerung mit dem IOCTL-Code IOCTL_CHANGER_EXCHANGE_MEDIUM.

Syntax

NTSTATUS ChangerExchangeMedium(
  [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

Wenn der Changer den Austausch von Medien unterstützt, gibt ChangerExchangeMedium die vom Systemporttreiber zurückgegebene status oder einen der folgenden Werte zurück:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

Wenn der Changer den Austausch von Medien nicht unterstützt, gibt ChangerExchangeMedium STATUS_INVALID_DEVICE_REQUEST zurück.

Hinweise

Diese Routine ist erforderlich.

ChangerExchangeMedium verschiebt ein Medienelement von einem Quellelement zu einem Ziel und von diesem Ziel zu einem anderen Ziel. Quelle und zweites Ziel sind oft identisch, was zu einem einfachen Austausch von Medien führt.

Das CHANGER_EXCHANGE_MEDIA-Flag in Features0 der GET_CHANGER_PARAMETERS-Struktur gibt an, ob der Changer diese Funktionalität unterstützt. Ein Changer, der den Austausch von Medien unterstützt, verfügt in der Regel über zwei Auswahlmechanismen für ein einzelnes Transportelement oder mindestens zwei Transportelemente. Ein Changer, der über einen einzelnen Auswahlmechanismus verfügt, kann den Austausch von Medien durch Emulation des Befehls unterstützen.

Der Changer-Klassentreiber überprüft die Länge des Eingabepuffers am E/A-Stapelspeicherort, bevor die ChangerExchangeMedium-Routine eines Miniklassentreibers aufgerufen wird. Irp-SystemBuffer> verweist auf eine CHANGER_EXCHANGE_MEDIUM-Struktur als Eingabeparameter, der das Transportelement und das festzulegende Ziel angibt.

ChangerExchangeMedium überprüft zunächst, ob die Transport-, Quell- und Zielelementadressen gültig sind, und konvertiert dann nullbasierte Elementadressen in gerätespezifische Elementadressen. Anschließend wird ein SRB mit einem CDB zum Austauschen der Medien erstellt und an den Systemporttreiber gesendet.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS