Функция ChangerGetParameters (mcd.h)
ChangerGetParameters обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_GET_PARAMETERS.
Синтаксис
NTSTATUS ChangerGetParameters(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Параметры
[in] DeviceObject
Указатель на объект устройства, представляющий средство изменения.
[in] Irp
Указатель на IRP.
Возвращаемое значение
ChangerGetParameters возвращает значение STATUS_XXX, возвращаемое драйвером системного порта, или одно из следующих значений:
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INSUFFICIENT_RESOURCES
Комментарии
Эта подпрограмма является обязательной.
ChangerGetParameters возвращает параметры модуля изменения, включая количество и тип его элементов, а также поддерживаемые им функциональные возможности.
Драйвер класса changer проверяет длину выходного буфера в расположении стека ввода-вывода перед вызовом ChangerGetParameters. Если длина выходного буфера меньше, чем sizeof(GET_CHANGER_PARAMETERS), драйвер класса средства изменения возвращает значение STATUS_INFO_LENGTH_MISMATCH.
ChangerGetParameters извлекает данные параметров с устройства, создавая СРБ с cdb, чтобы получить страницу заголовка параметра SCSI, страницу адреса элемента, страницу геометрии транспорта и страницу возможностей устройства или эквивалент этих данных, отличный от SCSI.
Затем ChangerGetParameters заполняет структуру GET_CHANGER_PARAMETERS в Irp-AssociatedIrp.SystemBuffer>, прежде чем вернуться к драйверу класса средства изменения.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | mcd.h (включая Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |