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


IOCTL_SCSISCAN_SET_TIMEOUT IOCTL (scsiscan.h)

Код элемента управления IOCTL_SCSISCAN_SET_TIMEOUT изменяет значение времени ожидания, используемое в режиме ядра, по-прежнему драйвер образа для автобусов SCSI при доступе к устройству.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Расположение, содержащее значение времени ожидания, в течение половины секунд.

Длина входного буфера

Размер входного буфера

Выходной буфер

Задайте значение NULL.

Длина выходного буфера

Установите значение 0.

Блок состояния

Irp->IoStatus.Status STATUS_SUCCESS, если запрос выполнен успешно. В противном случае состояние соответствующего условия ошибки в качестве кода NTSTATUS.

Замечания

Когда драйвер образа в режиме ядра по-прежнему отправляет команду SCSI на устройство, драйвер по умолчанию ожидает 30 секунд до истечения времени ожидания операции. Вы можете изменить значение времени ожидания для устройства, вызвав функцию DeviceloControl с кодом элемента управления IOCTL_SCSISCAN_CMD. Указанное значение времени ожидания остается в силе, пока устройство не будет закрыто.

Значения времени ожидания указываются в течение половины секунд. Таким образом, указанное значение 100 приводит к тому, что драйвер ожидает 50 секунд до истечения времени ожидания устройства.

Дополнительные сведения см. в статье Доступ к драйверам Kernel-Mode для устройств с тем же изображением.

Пример кода

ULONG timeout = 240;
fRet = DeviceIoControl( m_DeviceDataHandle,
        (DWORD)IOCTL_SCSISCAN_SET_TIMEOUT,
        &timeout,
        sizeof(ULONG),
        NULL, NULL, &dwBytesReturned, NULL);

Требования

Требование Ценность
заголовка scsiscan.h (include Scsiscan.h)

См. также

создание запросов IOCTL в драйверах

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronous

WdfIoTargetSendIoctlSynchronously