IOCTL_STORAGE_SET_HOTPLUG_INFO IOCTL (ntddstor.h)

设置指定设备的热插拔配置。 此请求采用 STORAGE_HOTPLUG_INFO 结构作为输入。 STORAGE_HOTPLUG_INFO 结构的 DeviceHotplug 成员确定要执行的操作。 如果该成员的值为非零值,则注册表中设备删除策略的值设置为 ExpectSurpriseRemoval ,并且禁用所有级别的缓存。 如果 DeviceHotplug 的值为零,则删除策略将设置为 ExpectOrderlyRemoval,并且可能会有选择地启用缓存。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

输入缓冲区。

输入缓冲区长度

I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示参数缓冲区的大小(以字节为单位),该大小必须大于或等于 size of (STORAGE_HOTPLUG_INFO) 。

输出缓冲区

驱动程序在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区STORAGE_HOTPLUG_INFO结构中返回热插拔配置数据。

输出缓冲区长度

STORAGE_HOTPLUG_INFO结构的长度。

状态块

“状态”字段设置为“STATUS_SUCCESS”,如果输入缓冲区太小,则可能会STATUS_INFO_LENGTH_MISMATCH。 如果 STORAGE_HOTPLUG_INFO 的 Size 成员不是此设备的类驱动程序所需的大小,则将其设置为 STATUS_INVALID_PARAMETER_1。 如果 MediaRemoveable 成员的值不同于类驱动程序保留的值,则将其设置为 STATUS_INVALID_PARAMETER_2。 如果 MediaHotplug 成员的值不同于类驱动程序持有的值,则将其设置为 STATUS_INVALID_PARAMETER_3;如果 WriteCacheEnableOverride 成员具有与类驱动程序持有的值不同的值,则将其设置为 STATUS_INVALID_PARAMETER_5。

要求

要求
Header ntddstor.h (包括 Ntddstor.h)

另请参阅

IOCTL_STORAGE_GET_HOTPLUG_INFO

STORAGE_HOTPLUG_INFO