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 |