Freigeben über


ChangerSetAccess-Funktion (mcd.h)

ChangerSetAccess behandelt die gerätespezifischen Aspekte eines IRP für die Gerätesteuerung 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 die IRP.

Rückgabewert

Wenn der Changer das Festlegen des Zugriffs unterstützt, gibt ChangerSetAccess den vom Systemporttreiber zurückgegebenen STATUS_XXX-Wert oder einen der folgenden Werte 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.

Hinweise

Diese Routine ist erforderlich.

ChangerSetAccess sperrt oder entsperrt den IEport, die Tür oder die Tastatur eines Changers und erweitert oder zieht einen IEport zurück.

Der Changer-Klassentreiber überprüft die Länge des Eingabepuffers am E/A-Stapelspeicherort, bevor ChangerSetAccess aufgerufen 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 status Code für diejenigen zurück, die nicht unterstützt werden.

Als Nächstes übersetzt ChangerSetAccess die nullbasierte Elementadresse, die vom System übergeben wird, 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 ihn an den Systemporttreiber. Der zu verwendende Befehl hängt vom Changer ab. Der Exabyte-Miniklassentreiber verwendet beispielsweise den SCSI-Befehl PREVENT ALLOW MEDIUM REMOVAL, 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
Kopfzeile mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS