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 規格。
主要程序代碼
輸入緩衝區
輸入緩衝區。
輸入緩衝區長度
IO_STACK_LOCATION 結構中的 Parameters.DeviceIoControl.InputBufferLength 表示輸入緩衝區的大小,其大小必須是 = sizeof(GET_CONFIGURATION_IOCTL_INPUT)。
輸出緩衝區
驅動程式會在 Irp->AssociatedIrp.SystemBuffer傳回緩衝區中的功能和配置文件數據。 數據會以 類型為 GET_CONFIGURATION_HEADER的標頭開頭。 功能數據會在緊接在此標頭之後的空間中報告。 其大小和格式取決於報告的功能。
輸出緩衝區長度
參數.DeviceIoControl.OutputBufferLength 在 I/O 堆棧位置中指出緩衝區的大小,以位元組為單位,緩衝區的大小必須 >= sizeof(GET_CONFIGURATION_HEADER)。
狀態區塊
[資訊] 字段會設定為傳回的位元元組數目。 如果要求成功,[狀態] 字段會設定為 [STATUS_SUCCESS]。 如果 Parameters.DeviceIoControl.InputBufferLength 沒有正確的值,要求就會失敗,併發生STATUS_INFO_LENGTH_MISMATCH錯誤。 如果 Parameters.DeviceIoControl.OutputBufferLength 不夠大,要求就會失敗,併發生STATUS_BUFFER_TOO_SMALL錯誤。 如果輸出緩衝區的值太大,要求會失敗STATUS_INVALID_BUFFER_SIZE訊息。
要求
要求 | 價值 |
---|---|
標頭 | ntddcdrm.h (包括 Ntddcdrm.h) |