NDK_FN_SEND fungsi panggilan balik (ndkpi.h)

Fungsi NdkSend (NDK_FN_SEND) memposting permintaan kirim pada pasangan antrean (QP) NDK.

Sintaks

NDK_FN_SEND NdkFnSend;

NTSTATUS NdkFnSend(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           ULONG Flags
)
{...}

Parameter

[in] pNdkQp

Penunjuk ke objek pasangan antrean (QP) NDK (NDK_QP).

[in, optional] RequestContext

Nilai konteks yang akan dikembalikan di anggota RequestContext dari struktur NDK_RESULT untuk permintaan ini.

pSgl

Array struktur SGE (NDK_SGE) yang mewakili buffer yang menyimpan data untuk dikirim.

[in] nSge

Jumlah struktur SGE dalam array yang ditentukan dalam parameter pSgl .

[in] Flags

Bitwise OR dari bendera yang menentukan operasi yang diizinkan. Bendera berikut didukung:

Nilai Makna
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Menunjukkan keberhasilan penyelesaian permintaan ini tidak menghasilkan peristiwa penyelesaian dalam antrean penyelesaian keluar. Namun, permintaan yang gagal menghasilkan peristiwa dalam antrean penyelesaian.
NDK_OP_FLAG_READ_FENCE
0x00000002
Menunjukkan bahwa semua permintaan baca sebelumnya harus selesai sebelum perangkat keras mulai memproses permintaan ini.
NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT
0x00000004
Menunjukkan bahwa antrean penyelesaian untuk serekan menghasilkan pemberitahuan. Untuk informasi selengkapnya tentang NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, lihat bagian Keterangan.
NDK_OP_FLAG_INLINE
0x00000040
Menunjukkan bahwa memori yang dirujuk oleh SGEs harus ditransfer sebaris. Selain itu, nilai MemoryRegionToken dalam entri NDK_SGE mungkin tidak valid. Permintaan sebaris tidak perlu membatasi jumlah entri dalam daftar SGE ke nilai MaxInitiatorRequestSge yang ditentukan saat pasangan antrean dibuat. Jumlah memori yang ditransfer sebaris harus berada dalam batas data sebaris dari pasangan antrean.
NDK_OP_FLAG_DEFER
0x00000200
Menunjukkan kepada penyedia NDK bahwa ia dapat menukar permintaan ke perangkat keras untuk diproses. Untuk informasi selengkapnya tentang bendera ini, lihat Skema Pemrosesan Yang Ditangguhkan NDKPI.

Catatan Bendera ini hanya didukung di NDKPI 1.2 (Windows Server 2012 R2) dan yang lebih baru.

Nilai kembali

Fungsi NdkSend mengembalikan salah satu kode NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Permintaan pengiriman berhasil diposting. Entri penyelesaian akan diantrekan ke antrean penyelesaian (CQ) ketika permintaan kerja selesai.
STATUS_CONNECTION_INVALID
Pasangan antrean (QP) tidak tersambung.
Kode status lainnya
Terjadi kesalahan.

Keterangan

NdkSend memposting permintaan kirim pada pasangan antrean (QP).

Anda dapat menggunakan bendera NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT jika Anda mengeluarkan beberapa permintaan pengiriman terkait. Atur bendera ini pada permintaan terakhir dalam grup permintaan pengiriman terkait.

Konsumen NDK dapat menggunakan bendera ini saat mengeluarkan beberapa permintaan pengiriman terkait. Konsumen NDK menetapkan bendera ini hanya pada permintaan pengiriman terkait yang terakhir. Serekan akan menerima semua permintaan kirim seperti biasa. Namun, ketika serekan menerima permintaan pengiriman terakhir (permintaan dengan bendera NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT diatur), antrean penyelesaian untuk serekan menghasilkan pemberitahuan. Pemberitahuan dibuat setelah permintaan terima selesai. Bendera ini tidak memiliki arti untuk penerima (peer) kecuali penerima sebelumnya telah memanggil fungsi NdkArmCq (NDK_FN_ARM_CQ) dengan jenis pemberitahuan diatur ke NDK_CQ_NOTIFY_SOLICITED.

Catatan Permintaan yang selesai dengan kesalahan selalu cocok dengan jenis pemberitahuan NDK_CQ_NOTIFY_SOLICITED .
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung, Didukung di NDIS 6.30 dan yang lebih baru.
Server minimum yang didukung Windows Server 2012
Target Platform Windows
Header ndkpi.h (termasuk Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

Skema Pemrosesan yang Ditangguhkan NDKPI

Persyaratan Posting Permintaan Kerja NDKPI

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE