Freigeben über


ChangerSetAccess-Funktion (mcd.h)

ChangerSetAccess behandelt die gerätespezifischen Aspekte eines Gerätesteuerungs-IRP mit dem IOCTL-Code IOCTL_CHANGER_SET_ACCESS.

Syntax

NTSTATUS ChangerSetAccess(
  [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 Änderungsgeber das Festlegen des Zugriffs unterstützt, gibt ChangerSetAccess den STATUS_vom Systemporttreiber oder einem der folgenden Werte zurückgegebenen XXX-Wert zurück:

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

Wenn der Changer das Festlegen des Zugriffs nicht unterstützt, gibt ChangerSetAccess STATUS_INVALID_DEVICE_REQUEST zurück.

Bemerkungen

Diese Routine ist erforderlich.

ChangerSetAccess Sperren oder entsperrt den IEport, die Tür oder die Wähltastatur eines Changers und erweitert oder zieht einen IEport zurück.

Der Änderungsklassentreiber überprüft die Länge des Eingabepuffers im E/A-Stapelspeicherort, bevor ChangerSetAccessaufgerufen wird. Irp–>SystemBuffer verweist auf eine CHANGER_SET_ACCESS Struktur als Eingabeparameter, der das festzulegende Element und den auszuführenden Vorgang angibt.

ChangerSetAccess sucht zuerst nach nicht unterstützten Elementen und Vorgängen und gibt den entsprechenden Statuscode für diese zurück, der nicht unterstützt wird.

Als Nächstes übersetzt ChangerSetAccess die vom System übergebene nullbasierte Elementadresse in die gerätespezifische Elementadresse, die vom Changer benötigt wird.

Schließlich erstellt ChangerSetAccess einen SRB mit einem CDB für den angegebenen Vorgang für das angegebene Element und sendet es an den Systemporttreiber. Der zu verwendende Befehl hängt vom Änderungsgeber ab. Der Exabyte-Miniklassentreiber verwendet z. B. den SCSI-Befehl "MITTLERE ENTFERNUNG ZULASSEN", um eine Wechseltür zu sperren oder zu entsperren und MOVE MEDIUM, um einen IEport zu erweitern oder zurückzuziehen.

Anforderungen

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

Siehe auch

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS