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 zielt auf den USB-Hub-PDO ab. Diese Anforderung muss an eine 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 Byte) in Parameters.Others.Argument1angibt.

Ausgabepuffer

Der Bustreiber füllt den Puffer aus, auf den Parameters.Others.Argument1 mit dem Namen des Hostcontrollergeräts verweist.

Länge des Ausgabepuffers

Sie wird nur bis zur in Parameters.Others.Argument2angegebenen Länge gefüllt.

Statusblock

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

Bemerkungen

Der Aufrufer muss einen Puffer bereitstellen, der groß genug ist, um eine USB_HUB_NAME Struktur zu enthalten. Der wert Parameters.Others.Argument2 gibt die Größe dieses Puffers an. Nach erfolgreichem Abschluss enthält das HubName Mitglied von USB_HUB_NAME den Namen des Controllers und das ActualLength Member 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 aufzunehmen, zeigt der HubName- Wert möglicherweise eine abgeschnittene Zeichenfolge an.

Um die Größe des Puffers abzurufen, der zum Halten der 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, weisen Sie einen Puffer von ActualLength + sizeof(ULONG) Bytes zu, und senden Sie die Anforderung erneut. Nach Abschluss der Anforderung gibt HubName- die gesamte Controllernamenzeichenfolge an.

Anforderungen

Anforderung Wert
Header- usbioctl.h

Siehe auch

USB_HUB_NAME