Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |