Freigeben über


ChangerExchangeMedium-Funktion (mcd.h)

ChangerExchangeMedium behandelt die gerätespezifischen Aspekte eines Gerätesteuerungs-IRP 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 das IRP.

Rückgabewert

Wenn der Changer den Austausch von Medien unterstützt, gibt ChangerExchangeMedium den vom Systemporttreiber zurückgegebenen 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.

Bemerkungen

Diese Routine ist erforderlich.

ChangerExchangeMedium ein Medienelement von einem Quellelement auf ein Ziel und von diesem Ziel zu einem anderen Ziel verschiebt. Die Quelle und das zweite Ziel sind häufig 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 mit einem einzigen Auswahlmechanismus kann den Austausch von Medium über die Emulation des Befehls unterstützen.

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

ChangerExchangeMedium zuerst überprüft, 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 erstellt, um die Medien auszutauschen und an den Systemporttreiber zu senden.

Anforderungen

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

Siehe auch

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS