EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD Rückruffunktion (ucxendpoint.h)
Die Implementierung des Clienttreibers, die UCX aufruft, um statische Streams 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 für ein UCXENDPOINT-Objekt, das den Endpunkt darstellt.
[in] NumberOfStreams
Die Anzahl der nicht standardmäßig zu erstellenden Streams.
[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 status Wert zurückgeben, für den NT_SUCCESS(status) true entspricht. Andernfalls muss ein status Wert zurückgegeben werden, für den NT_SUCCESS(status) false entspricht.
Hinweise
Der UCX-Clienttreiber registriert diese Rückruffunktion bei der USB-Hostcontrollererweiterung (UCX), indem er die UcxEndpointCreate-Methode aufruft .
Diese Rückruffunktion erstellt ein statisches UCX-Streams-Objekt, indem die UcxStaticStreamsCreate-Methode aufgerufen wird . Nur ein statisches UCX-Streams-Objekt kann einem einzelnen Endpunkt zugeordnet werden. Der Treiber ruft dann UcxStaticStreamsSetStreamInfo einmal pro Stream auf, um eine Warteschlange für jeden Stream zu erstellen.
Ein statisches Streamsobjekt wird 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 | Windows |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | ucxendpoint.h (include Ucxclass.h, Ucxendpoint.h) |
IRQL | PASSIVE_LEVEL |