Freigeben über


IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME IOCTL (usbioctl.h)

Die IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME E/A-Anforderung fragt den Bustreiber nach dem Gerätenamen des USB-Hostcontrollers ab.

IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME ist eine E/A-Steuerungsanforderung im Kernelmodus. Diese Anforderung richtet sich an den USB-Hub-PDO. Diese Anforderung muss an einem IRQL von PASSIVE_LEVEL gesendet werden.

Hauptcode

IRP_MJ_INTERNAL_DEVICE_CONTROL

Eingabepuffer

Parameters.Others.Argument1 sollte ein Zeiger auf eine USB_HUB_NAME Struktur sein, die mit dem Namen des Hostcontrollers ausgefüllt wird.

Eingabepufferlänge

Parameters.Others.Argument2 sollte ein ULONG sein, der die Länge des Puffers (in Bytes) in Parameters.Others.Argument1 angibt.

Ausgabepuffer

Der Bustreiber füllt den Puffer, auf den Parameter.Others.Argument1 verweist, mit dem Gerätenamen des Hostcontrollers.

Länge des Ausgabepuffers

Sie wird nur bis zu der in Parameters.Others.Argument2 angegebenen Länge gefüllt.

Statusblock

Der Bus- oder Porttreiber legt Irp-IoStatus.Status> auf STATUS_SUCCESS oder den entsprechenden Fehler status fest.

Hinweise

Der Aufrufer muss einen Puffer bereitstellen, der groß genug ist, um eine USB_HUB_NAME Struktur aufzunehmen. Der Parameter.Others.Argument2-Wert gibt die Größe dieses Puffers an. Nach erfolgreichem Abschluss enthält das HubName-Element von USB_HUB_NAME den Namen des Controllers, und das ActualLength-Element gibt die Länge der Controllernamenzeichenfolge an. Beachten Sie, dass ActualLength nicht die Größe der gesamten USB_HUB_NAME-Struktur angibt. Wenn der in Parameters.Others.Argument1 bereitgestellte Puffer nicht groß genug ist, um die Zeichenfolge zu halten, zeigt der HubName-Wert möglicherweise eine abgeschnittene Zeichenfolge an.

Um die Größe des Puffers abzurufen, der für die Zeichenfolge erforderlich ist, senden Sie die Anforderung zweimal. Geben Sie in der ersten Anforderung einen Puffer an, der mindestens sizeof(USB_HUB_NAME) Bytes ist. Andernfalls gibt ActualLength nicht die richtige Länge der Zeichenfolge an, und die Anforderung schlägt mit STATUS_BUFFER_TOO_SMALL fehl.

Nachdem die erste Anforderung erfolgreich abgeschlossen wurde, ordnen Sie einen Bytespuffer ActualLength + sizeof(ULONG) zu, und senden Sie die Anforderung erneut. Nach Abschluss der Anforderung gibt HubName die gesamte Controllernamenzeichenfolge an.

Anforderungen

Anforderung Wert
Header usbioctl.h

Weitere Informationen

USB_HUB_NAME