Поделиться через


Функция ChangerSetAccess (mcd.h)

ChangerSetAccess обрабатывает аспекты IRP управления устройствами с помощью кода IOCTL IOCTL_CHANGER_SET_ACCESS.

Синтаксис

NTSTATUS ChangerSetAccess(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Параметры

[in] DeviceObject

Указатель на объект устройства, представляющий средство изменения.

[in] Irp

Указатель на IRP.

Возвращаемое значение

Если изменение поддерживает доступ, ChangerSetAccess возвращает значение STATUS_XXX , возвращаемое драйвером системного порта или одним из следующих значений:

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

Если изменение не поддерживает доступ к параметру, ChangerSetAccess возвращает STATUS_INVALID_DEVICE_REQUEST.

Замечания

Эта подпрограмма требуется.

ChangerSetAccess блокирует или разблокирует IEport, door или keypad, а также расширяет или удаляет IEport.

Драйвер класса changer проверяет длину входного буфера в расположении стека ввода-вывода перед вызовом ChangerSetAccess. Irp—>SystemBuffer указывает на структуру CHANGER_SET_ACCESS в качестве входного параметра, указывающего элемент для задания и выполнения операции.

ChangerSetAccess сначала проверяет наличие неподдерживаемых элементов и операций и возвращает соответствующий код состояния для тех, кто не поддерживает.

Затем ChangerSetAccess преобразует адрес элемента на основе нуля, передаваемый системой в адрес элемента, который требуется для изменения устройства.

Наконец, ChangerSetAccess создает SRB с CDB для данной операции с заданным элементом и отправляет его в драйвер системного порта. Команда, используемая, зависит от средства изменения. Например, драйвер миникласса Exabyte использует команду SCSI ALLOW MEDIUM REMOVAL для блокировки или разблокировки двери переключения и MOVE MEDIUM для расширения или извлечения IEport.

Требования

Требование Ценность
целевая платформа Настольный
заголовка mcd.h (включая Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

См. также

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS