IOCTL_STORAGE_SET_HOTPLUG_INFO IOCTL (ntddstor.h)
设置指定设备的热插拔配置。 此请求采用 STORAGE_HOTPLUG_INFO 结构作为输入。 STORAGE_HOTPLUG_INFO 结构的 DeviceHotplug 成员确定要执行的操作。 如果该成员的值为非零值,则注册表中设备删除策略的值设置为 ExpectSurpriseRemoval ,并且禁用所有级别的缓存。 如果 DeviceHotplug 的值为零,则删除策略将设置为 ExpectOrderlyRemoval,并且可能会有选择地启用缓存。
主要代码
输入缓冲区
输入缓冲区。
输入缓冲区长度
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) |