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 指示参数缓冲区的大小(以字节为单位),参数缓冲区的大小必须大于或等于 sizeof(STORAGE_HOTPLUG_INFO)。

输出缓冲区

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

输出缓冲区长度

STORAGE_HOTPLUG_INFO 结构的长度。

状态块

状态 字段设置为STATUS_SUCCESS,或者如果输入缓冲区太小,则可能STATUS_INFO_LENGTH_MISMATCH。 如果STORAGE_HOTPLUG_INFO的 大小 成员不是此设备的类驱动程序预期的大小,则设置为STATUS_INVALID_PARAMETER_1。 如果 MediaRemoveable 成员的值不同于类驱动程序所持有的值,则设置为STATUS_INVALID_PARAMETER_2。 如果 MediaHotplug 成员具有与类驱动程序持有的值不同,则设置为STATUS_INVALID_PARAMETER_3;如果 WriteCacheEnableOverride 成员具有与类驱动程序持有的值不同,则该值设置为STATUS_INVALID_PARAMETER_5。

要求

要求 价值
标头 ntddstor.h (包括 Ntddstor.h)

另请参阅

IOCTL_STORAGE_GET_HOTPLUG_INFO

STORAGE_HOTPLUG_INFO