ChangerSetAccess 函式 (mcd.h)
ChangerSetAccess 會使用 IOCTL 程式代碼 IOCTL_CHANGER_SET_ACCESS來處理裝置控制項 IRP 的裝置特定層面。
語法
NTSTATUS ChangerSetAccess(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
參數
[in] DeviceObject
代表變更器的裝置物件的指標。
[in] Irp
IRP 的指標。
傳回值
如果 changer 支援設定存取權, ChangerSetAccess 會傳回系統埠驅動程式所傳回的 STATUS_XXX 值,或下列其中一個值:
STATUS_SUCCESS
STATUS_INSUFFICIENT_RESOURCES
STATUS_INVALID_PARAMETER
如果變更程式不支援設定存取權,ChangerSetAccess 會傳回STATUS_INVALID_DEVICE_REQUEST。
備註
需要此例程。
ChangerSetAccess 會鎖定或解除鎖定變更者的 IEport、門或按鍵,並擴充或撤銷 IEport。
changer 類別驅動程式會在呼叫 ChangerSetAccess 之前,先檢查 I/O 堆棧位置中的輸入緩衝區長度。 Irp-SystemBuffer> 會指向CHANGER_SET_ACCESS結構做為輸入參數,指出要設定的專案,以及要執行的作業。
ChangerSetAccess 會先檢查不支援的項目和作業,並針對不支援的專案傳回適當的狀態代碼。
接下來, ChangerSetAccess 會將系統傳遞的以零起始的專案位址轉譯為變更器所需的裝置特定元素位址。
最後, ChangerSetAccess 會針對指定元素上的指定作業建置具有CDB的SRB,並將它傳送至系統埠驅動程式。 要使用的命令取決於變更器。 例如,Exabyte 迷你類別驅動程式會使用 SCSI 命令防止允許媒體移除鎖定或解除鎖定變更程式門,以及 MOVE MEDIUM 來擴充或撤銷 IEport。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | mcd.h (包括 Mcd.h、Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |