EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD Rückruffunktion (ucxendpoint.h)
Die Implementierung des Clienttreibers, die UCX aufruft, um statische Datenströme zu erstellen.
Syntax
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;
NTSTATUS EvtUcxEndpointStaticStreamsAdd(
[in] UCXENDPOINT UcxEndpoint,
[in] ULONG NumberOfStreams,
[in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}
Parameter
[in] UcxEndpoint
Ein Handle zu einem UCXENDPOINT-Objekt, das den Endpunkt darstellt.
[in] NumberOfStreams
Die Anzahl der zu erstellenden nicht standardmäßigen Datenströme.
[in] UcxStaticStreamsInit
Ein Zeiger auf eine undurchsichtige Struktur, die Initialisierungsinformationen enthält. Diese Struktur wird von UCX verwaltet.
Rückgabewert
Wenn der Vorgang erfolgreich ist, muss die Rückruffunktion STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) WAHR ist. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE entspricht.
Bemerkungen
Der UCX-Clienttreiber registriert diese Rückruffunktion mit der USB-Hostcontrollererweiterung (UCX), indem die UcxEndpointCreate-Methode aufgerufen wird.
Diese Rückruffunktion erstellt ein UCX Static Streams-Objekt durch Aufrufen der UcxStaticStreamsCreate-Methode. Einem einzelnen Endpunkt kann nur ein statisches UCX-Datenstromobjekt zugeordnet werden. Anschließend ruft der Treiber UcxStaticStreamsSetStreamInfo einmal pro Datenstrom auf, um eine Warteschlange für jeden Datenstrom zu erstellen.
Ein statisches Streams-Objekt ist erst aktiviert, wenn UCX die EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE Rückruffunktion des Clienttreibers aufruft.
Beispiele
NTSTATUS
Endpoint_EvtEndpointStaticStreamsAdd(
UCXENDPOINT UcxEndpoint,
ULONG NumberOfStreams,
PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{
NTSTATUS status;
WDF_OBJECT_ATTRIBUTES wdfAttributes;
UCXSSTREAMS ucxStaticStreams;
STREAM_INFO streamInfo;
ULONG streamId;
TRY {
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&wdfAttributes, STATIC_STREAMS_CONTEXT);
status = UcxStaticStreamsCreate(UcxEndpoint,
&UcxStaticStreamsInit,
&wdfAttributes,
&ucxStaticStreams);
// … error handling …
for (i = 0, streamId = 1; i < NumberOfStreams; i += 1, streamId += 1) {
// … create WDF queue …
STREAM_INFO_INIT(&streamInfo,
wdfQueue,
streamId);
UcxStaticStreamsSetStreamInfo(ucxStaticStreams, &streamInfo);
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Fenster |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | ucxendpoint.h (include Ucxclass.h, Ucxendpoint.h) |
IRQL- | PASSIVE_LEVEL |