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


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

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

Синтаксис

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

Параметры

[in] DeviceObject

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

[in] Irp

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

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

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

STATUS_SUCCESS

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

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

Замечания

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

ChangerReinitializeUnit приводит к повторному изменению его транспортного элемента. В зависимости от изменяющегося элемента может вернуться транспорт в положение "home". Драйвер класса changer обычно вызывает ChangerReinitializeUnit после включения или вызова приложения, инициирующего операцию восстановления. Флаг CHANGER_DEVICE_REINITIALIZE_CAPABLE в Features0GET_CHANGER_PARAMETERS указывает, поддерживает ли транспорт меняющего средства повторную передачу в этих обстоятельствах.

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

ChangerReinitializeUnit создает SRB с CDB для размещения элемента транспорта и отправляет его в драйвер системного порта.

ChangerReinitializeUnit задает поле Information в блоке состояния ввода-вывода значение sizeof(CHANGER_ELEMENT), прежде чем вернуться к драйверу класса changer.

Требования

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

См. также

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS