Share via


WinUsb_Initialize-Funktion (winusb.h)

Die WinUsb_Initialize-Funktion erstellt ein WinUSB-Handle für das Gerät, das durch ein Dateihandle angegeben wird.

Syntax

BOOL WinUsb_Initialize(
  [in]  HANDLE                   DeviceHandle,
  [out] PWINUSB_INTERFACE_HANDLE InterfaceHandle
);

Parameter

[in] DeviceHandle

Das Handle für das Gerät, das CreateFile zurückgegeben hat. WinUSB verwendet überlappende E/A, sodass FILE_FLAG_OVERLAPPED im dwFlagsAndAttributes-Parameter des CreateFile-Aufrufs angegeben werden müssen, damit DeviceHandle über die Für die ordnungsgemäße Funktion WinUsb_Initialize erforderlichen Merkmale verfügt.

[out] InterfaceHandle

Empfängt ein undurchsichtiges Handle für die erste (Standard)-Schnittstelle auf dem Gerät. Dieses Handle ist für andere WinUSB-Routinen erforderlich, die Vorgänge auf der Standardschnittstelle ausführen. Rufen Sie die funktion WinUSB_Free auf, um das Handle freizugeben.

Rückgabewert

WinUsb_Initialize gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Routine FALSE zurück, und der Aufrufer kann den protokollierten Fehler durch Aufrufen von GetLastError abrufen.

GetLastError kann den folgenden Fehlercode zurückgeben.

Rückgabecode Beschreibung
ERROR_INVALID_HANDLE
Der Aufrufer hat NULL oder ein ungültiges Handle im DeviceHandle-Parameter übergeben. FILE_FLAG_OVERLAPPED wurde im Dateihandle nicht festgelegt.
ERROR_NOT_ENOUGH_MEMORY
Gibt an, dass nicht genügend Arbeitsspeicher zum Ausführen des Vorgangs vorhanden ist.
ERROR_BAD_DEVICE
Gibt an, dass der Standardschnittstellendeskriptor für das Gerät nicht gefunden werden konnte.

Hinweise

Wenn WinUsb_Initialize aufgerufen wird, werden die Richtlinieneinstellungen der Schnittstelle auf die Standardwerte zurückgesetzt.

Der WinUsb_Initialize Aufruf fragt den zugrunde liegenden USB-Stapel nach verschiedenen Deskriptoren ab und weist genügend Arbeitsspeicher zu, um die abgerufenen Deskriptordaten zu speichern.

WinUsb_Initialize ruft zuerst den Gerätedeskriptor ab und ruft dann den zugeordneten Konfigurationsdeskriptor ab. Vom Konfigurationsdeskriptor leitet der Aufruf die zugeordneten Schnittstellendeskriptoren ab und speichert sie in einem Array. Die Schnittstellen im Array werden durch nullbasierte Indizes identifiziert. Ein Indexwert von 0 gibt die erste Schnittstelle (die Standardschnittstelle) an, der Wert 1 die zweite zugeordnete Schnittstelle usw. WinUsb_Initialize analysiert den Standardschnittstellendeskriptor für die Endpunktdeskriptoren und speichert Informationen wie die zugeordneten Pipes oder zustandsspezifischen Daten zwischen. Das im Parameter InterfaceHandle empfangene Handle ist ein Zeiger auf den Speicherblock, der der ersten Schnittstelle im Array zugeordnet ist.

Wenn eine Anwendung eine andere Schnittstelle auf dem Gerät verwenden möchte, muss sie WinUsb_GetAssociatedInterface aufrufen, den Index der Schnittstelle angeben und ein Handle für den Speicherblock abrufen, der der angegebenen Schnittstelle zugeordnet ist.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header winusb.h (winusb.h einschließen)
Bibliothek Winusb.lib
DLL Winusb.dll

Weitere Informationen

Winusb

WinUSB-Funktionen

WinUSB_Free