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 |