NDK_FN_FAST_REGISTER fungsi panggilan balik (ndkpi.h)
Fungsi NdkFastRegister (NDK_FN_FAST_REGISTER) mendaftarkan array halaman logis adaptor dengan cepat melalui wilayah memori yang ada.
Sintaks
NDK_FN_FAST_REGISTER NdkFnFastRegister;
NTSTATUS NdkFnFastRegister(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
[in] NDK_MR *pMr,
[in] ULONG AdapterPageCount,
const NDK_LOGICAL_ADDRESS *AdapterPageArray,
[in] ULONG FBO,
[in] SIZE_T Length,
[in] PVOID BaseVirtualAddress,
[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.
[in] pMr
Penunjuk ke objek wilayah memori (MR) NDK (NDK_MR) yang diinisialisasi untuk pendaftaran cepat.
[in] AdapterPageCount
Jumlah halaman dalam parameter AdapterPageArray . Ukuran setiap halaman di AdapterPageArrayPAGE_SIZE byte.
AdapterPageArray
Array alamat logis adaptor (NDK_LOGICAL_ADDRESS) di mana setiap alamat adalah alamat logis awal untuk halaman. Setiap alamat harus diratakan halaman yang panjangnya PAGE_SIZE byte. Alamat berturut-turut dalam array belum tentu berturut-turut dalam hal ruang alamat logis, tetapi array secara keseluruhan mewakili wilayah memori yang hampir bersebelahan dari perspektif sistem host.
[in] FBO
Offset byte (FBO) pertama dalam halaman pertama. Wilayah terdaftar dimulai pada offset ini.
[in] Length
Panjangnya, dalam byte, dari wilayah yang didaftarkan mulai dari FBO. Panjangnya harus kurang dari atau sama dengan jumlah total byte yang diwakili oleh set pertama (AdapterPageCount) halaman yang terkandung dalam array AdapterPageArray dikurangi FBO.
[in] BaseVirtualAddress
Nilai alamat virtual yang ditentukan konsumen untuk merujuk ke lokasi byte pertama wilayah memori. Nilai ini harus berupa kelipatan PAGE_SIZE ditambah FBO. Jadi, nilai yang diizinkan termasuk FBO, atau FBO ditambah n kali PAGE_SIZE di mana n lebih besar dari atau sama dengan nol. Nol adalah nilai yang valid hanya jika FBO adalah nol.
[in] Flags
Bitwise OR dari bendera yang menentukan operasi yang diizinkan. Bendera berikut didukung:
Nilai | Makna |
---|---|
|
Menunjukkan keberhasilan penyelesaian permintaan ini tidak menghasilkan peristiwa penyelesaian dalam antrean penyelesaian keluar. Namun, permintaan yang gagal menghasilkan peristiwa dalam antrean penyelesaian. |
|
Menunjukkan bahwa semua permintaan baca sebelumnya harus selesai sebelum perangkat keras mulai memproses permintaan ini. |
|
Aktifkan akses baca ke wilayah memori untuk serekan yang terhubung. Untuk mengakses wilayah memori, rekan yang terhubung harus memiliki token yang valid. |
|
Izinkan akses tulis lokal ke wilayah memori. |
|
Aktifkan akses tulis ke wilayah memori untuk serekan yang terhubung. Untuk mengakses wilayah memori, rekan yang terhubung harus memiliki token yang valid. |
|
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 NDK_FN_FAST_REGISTER mengembalikan salah satu kode NTSTATUS berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Permintaan berhasil diposting. Entri penyelesaian akan diantrekan ke CQ ketika permintaan kerja selesai. |
|
QP tidak tersambung. |
|
Wilayah memori tidak diinisialisasi untuk akses jarak jauh selama inisialisasi daftar cepat tetapi permintaan kerja daftar cepat yang ditentukan NDK_OP_FLAG_ALLOW_REMOTE_READ atau NDK_OP_FLAG_ALLOW_REMOTE_WRITE. |
|
Terjadi kesalahan. |
Keterangan
NdkFastRegister mendaftarkan larik halaman logis adaptor melalui wilayah memori yang ada yang diinisialisasi untuk pendaftaran cepat.
Setelah panggilan ini kembali, token wilayah memori untuk akses jarak jauh tersedia dengan fungsi NdkGetRemoteTokenFromMr (NDK_FN_GET_REMOTE_TOKEN_FROM_MR) dari MR.
NdkFastRegister tidak mendukung alamat virtual berbasis nol.
Jika bendera NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED tidak diatur dalam anggota AdapterFlags dari struktur NDK_ADAPTER_INFO , konsumen NDK harus meneruskan bendera NDK_OP_FLAG_RDMA_READ_SINK saat mendaftarkan memori yang mungkin digunakan sebagai buffer sink untuk permintaan baca RDMA. Penyedia NDK tertentu mungkin memerlukan pengaktifan hak akses khusus pada buffer sink untuk permintaan baca RDMA. Bendera ini memungkinkan penyedia tersebut untuk mendukung permintaan pendaftaran dengan tepat. Perhatikan bahwa buffer mungkin didaftarkan untuk beberapa tujuan, oleh karena itu bendera ini mungkin disertai oleh orang lain.
Jika konsumen NDK melewati bendera NDK_OP_FLAG_RDMA_READ_SINK pada adaptor tempat bendera NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED diatur dalam anggota AdapterFlags dari struktur NDK_ADAPTER_INFO , penyedia tidak diperlukan untuk menangani bendera NDK_OP_FLAG_RDMA_READ_SINK dan tidak boleh gagal permintaan karena adanya bendera ini.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk