IOCTL_CDROM_GET_CONFIGURATION IOCTL (ntddcdrm.h)
Fordert Feature- und Profilinformationen von einem CD-ROM Gerät an.
Multimediageräte weisen je nach Medientyp, der sich auf dem Gerät befindet, unterschiedliche Merkmale auf. Um Treibern eine Möglichkeit zum Abfragen von Multimediageräten zu diesen unterschiedlichen Merkmalen zu bieten, definiert die SCSI Multimedia - 3 (MMC-3) spezifikation einen Befehl namens "GET CONFIGURATION". Mit diesem Befehl können Treiber ein Gerät sowohl für permanente Informationen über das Gerät als auch für Informationen abfragen, die variieren, wenn sich die Medien ändern. In Microsoft Windows 2000 und höher können Treiber diese Abfrage mithilfe der IOCTL_CDROM_GET_CONFIGURATION Anforderung an ein Gerät senden.
Die IOCTL_CDROM_GET_CONFIGURATION Anforderung gibt eine Liste von Deskriptoren zurück, die die Funktionen des Geräts für das aktuelle Medium beschreiben. Diese Deskriptoren sind in zwei Gruppen unterteilt, die als "Featuredeskriptoren" und "Profillistendeskriptoren" bezeichnet werden. Ein Feature gibt die Funktionen eines Geräts und des zugehörigen Mediums an. Ein Profil ist eine Sammlung von Features. Wenn das Gerät ein Profil unterstützt, unterstützt es alle Features im Profil.
Weitere Erläuterungen zu Features und Profilen finden Sie in der MMC-3 Spezifikation.
Hauptcode
Eingabepuffer
Eingabepuffer.
Eingabepufferlänge
Parameters.DeviceIoControl.InputBufferLength in der IO_STACK_LOCATION Struktur gibt die Größe des Eingabepuffers in Bytes an, die = Größe des(GET_CONFIGURATION_IOCTL_INPUT) sein muss.
Ausgabepuffer
Der Treiber gibt die Feature- und Profildaten im Puffer bei Irp->AssociatedIrp.SystemBufferzurück. Die Daten beginnen mit einer Kopfzeile vom Typ GET_CONFIGURATION_HEADER. Featuredaten werden im Bereich gemeldet, der unmittelbar auf diesen Header folgt. Die Größe und Formatierung hängen davon ab, welche Features gemeldet werden.
Länge des Ausgabepuffers
Parameters.DeviceIoControl.OutputBufferLength- an der I/O-Stapelposition gibt die Größe des Puffers in Bytes an, der >= Sizeof(GET_CONFIGURATION_HEADER).
Statusblock
Das Feld Information wird auf die Anzahl der zurückgegebenen Bytes festgelegt. Das Feld Status wird auf STATUS_SUCCESS festgelegt, wenn die Anforderung erfolgreich ist. Wenn die Parameters.DeviceIoControl.InputBufferLength nicht über den richtigen Wert verfügt, schlägt die Anforderung mit einem STATUS_INFO_LENGTH_MISMATCH Fehler fehl. Wenn Parameters.DeviceIoControl.OutputBufferLength nicht groß genug ist, schlägt die Anforderung mit einem STATUS_BUFFER_TOO_SMALL Fehler fehl. Wenn der Wert für den Ausgabepuffer zu groß ist, schlägt die Anforderung eine STATUS_INVALID_BUFFER_SIZE Meldung fehl.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddcdrm.h (enthalten Ntddcdrm.h) |