IOCTL_CDROM_GET_CONFIGURATION IOCTL (ntddcdrm.h)

从 CD-ROM 设备请求功能和配置文件信息。

多媒体设备具有不同的特征,具体取决于设备中的媒体类型。 为了向驱动程序提供查询多媒体设备有关这些不同特征的方法, SCSI 多媒体 - 3 (MMC-3) 规范定义了一个名为“GET CONFIGURATION”的命令。此命令允许驱动程序在设备中查询有关设备的永久信息和每当媒体更改时变化的信息。 在 Microsoft Windows 2000 及更高版本的操作系统中,驱动程序可以使用IOCTL_CDROM_GET_CONFIGURATION请求将此查询发送到设备。

IOCTL_CDROM_GET_CONFIGURATION请求返回描述当前介质的设备功能的描述符列表。 这些描述符分为两组,称为“功能描述符”和“配置文件列表描述符”。功能指定设备及其关联介质的功能。 配置文件是功能的集合。 如果设备支持配置文件,则它支持配置文件中的所有功能。

有关功能和配置文件的进一步讨论,请参阅 MMC-3 规范。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

输入缓冲区。

输入缓冲区长度

IO_STACK_LOCATION 结构中的 Parameters.DeviceIoControl.InputBufferLength 指示输入缓冲区的大小(以字节为单位),该大小必须为 = sizeof (GET_CONFIGURATION_IOCTL_INPUT) 。

输出缓冲区

驱动程序在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区中返回功能和配置文件数据。 数据以 GET_CONFIGURATION_HEADER 类型的标头开头。 功能数据将立即在此标头后面的空间中报告。 其大小和格式取决于报告的功能。

输出缓冲区长度

I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 指示缓冲区的大小(以字节为单位),该大小必须为 >= sizeof (GET_CONFIGURATION_HEADER) 。

状态块

信息” 字段设置为返回的字节数。 如果请求成功,“ 状态” 字段设置为STATUS_SUCCESS。 如果 Parameters.DeviceIoControl.InputBufferLength 没有正确的值,则请求将失败并出现STATUS_INFO_LENGTH_MISMATCH错误。 如果 Parameters.DeviceIoControl.OutputBufferLength 不够大,则请求将失败并出现STATUS_BUFFER_TOO_SMALL错误。 如果输出缓冲区的值太大,则请求将失败STATUS_INVALID_BUFFER_SIZE消息。

要求

要求
Header ntddcdrm.h (包括 Ntddcdrm.h)

另请参阅

GET_CONFIGURATION_HEADER

GET_CONFIGURATION_IOCTL_INPUT