EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD fungsi panggilan balik (ucxendpoint.h)

Implementasi driver klien yang dipanggil UCX untuk membuat aliran statis.

Sintaks

EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;

NTSTATUS EvtUcxEndpointStaticStreamsAdd(
  [in] UCXENDPOINT UcxEndpoint,
  [in] ULONG NumberOfStreams,
  [in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}

Parameter

[in] UcxEndpoint

Handel ke objek UCXENDPOINT yang mewakili titik akhir.

[in] NumberOfStreams

Jumlah aliran non-default yang akan dibuat.

[in] UcxStaticStreamsInit

Penunjuk ke struktur buram yang berisi informasi inisialisasi. Struktur ini dikelola oleh UCX.

Nilai kembali

Jika operasi berhasil, fungsi panggilan balik harus mengembalikan STATUS_SUCCESS, atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE. Jika tidak, nilai status harus dikembalikan yang NT_SUCCESS(statusnya) sama dengan FALSE.

Keterangan

Driver klien UCX mendaftarkan fungsi panggilan balik ini dengan ekstensi pengontrol host USB (UCX) dengan memanggil metode UcxEndpointCreate .

Fungsi panggilan balik ini membuat objek aliran statis UCX dengan memanggil metode UcxStaticStreamsCreate . Hanya satu objek aliran statis UCX yang dapat dikaitkan dengan satu titik akhir. Driver kemudian memanggil UcxStaticStreamsSetStreamInfo sekali per streaming untuk membuat antrean untuk setiap aliran.

Objek aliran statis tidak diaktifkan sampai UCX memanggil fungsi panggilan balik EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE driver klien.

Contoh

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);
        }

Persyaratan

Persyaratan Nilai
Target Platform Windows
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header ucxendpoint.h (termasuk Ucxclass.h, Ucxendpoint.h)
IRQL PASSIVE_LEVEL