IOCTL_STORAGE_MCN_CONTROL IOCTL (ntddstor.h)
暂时启用或禁用在可移动媒体设备上GUID_IO_MEDIA_ARRIVAL和GUID_IO_MEDIA_REMOVAL的自定义 PnP 事件的传递。 如果调用方以FILE_READ_ATTRIBUTES访问权限打开设备,并且设备在注册表中启用了自动播放,则这反过来又会启用或禁用设备的媒体更改检测 (自动播放) 。 调用方不得打开设备进行读取或写入访问,否则 IOCTL 操作将失败。 此 IOCTL 对注册表中的“自动播放”设置没有影响。
此类可移动媒体设备的驱动程序必须执行以下操作:
- 在设备对象扩展中保留每个物理设备的禁用请求计数。
- 使用此 IOCTL 调用时,如果设置了禁用媒体更改检测的标志,则递增计数;如果标志是明确的,则递减计数。
- 仅当禁用请求计数为零时才更改媒体状态时,为设备设置媒体更改事件。
主要代码
输入缓冲区
Irp-AssociatedIrp.SystemBuffer> 中的缓冲区包含一个布尔值,其值为 TRUE,表示驱动程序应禁用媒体更改检测。
输入缓冲区长度
布尔值的长度。
输出缓冲区
无。
输出缓冲区长度
无。
状态块
“ 信息” 字段设置为零。 “状态”字段设置为STATUS_SUCCESS,或者可能设置为STATUS_BUFFER_TOO_SMALL、STATUS_INVALID_PARAMETER或STATUS_INVALID_DEVICE_STATE。
要求
要求 | 值 |
---|---|
Header | ntddstor.h (包括 Ntddstor.h) |