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 仍然映像驱动程序向设备发送 SCSI 命令时,默认情况下,驱动程序会在超时作前等待 30 秒。 可以使用 IOCTL_SCSISCAN_CMD 控制代码调用 DeviceloControl 函数来更改设备的超时值。 指定的超时值一直有效,直到设备关闭。

超时值在半秒内指定。 因此,指定的值为 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 (包括 Scsiscan.h)

另请参阅

在驱动程序中创建 IOCTL 请求

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously