OID_SRIOV_READ_VF_CONFIG_SPACE
Driver yang terlalu berlebihan mengeluarkan permintaan metode pengidentifikasi objek (OID) OID_SRIOV_READ_VF_CONFIG_SPACE untuk membaca data dari ruang konfigurasi PCI Express (PCIe) untuk Fungsi Virtual PCIe (VF) tertentu pada adaptor jaringan.
Setelah berhasil mengembalikan dari permintaan metode OID ini, anggota InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke buffer yang dialokasikan pemanggil. Buffer ini diformat untuk memuat hal berikut:
Struktur NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS yang berisi parameter untuk operasi baca ruang konfigurasi PCI VF.
Ruang buffer tambahan untuk data yang akan dibaca dari ruang konfigurasi PCI.
Keterangan
Driver miniport VF berjalan dalam sistem operasi tamu partisi anak Hyper-V. Karena itu, driver miniport VF tidak dapat langsung mengakses sumber daya perangkat keras, seperti ruang konfigurasi PCI VF. Hanya driver miniport untuk PCIe Physical Function (PF) yang dapat mengakses ruang konfigurasi PCI untuk VF. Driver miniport PF berjalan dalam sistem operasi manajemen partisi induk Hyper-V dan memiliki akses istimewa ke sumber daya VF.
Untuk membaca ruang konfigurasi PCI VF, driver yang terlalu besar yang berjalan dalam sistem operasi manajemen mengeluarkan permintaan metode OID OID_SRIOV_READ_VF_CONFIG_SPACE ke driver miniport PF. Permintaan metode OID ini diperlukan untuk driver miniport PF yang mendukung antarmuka virtualisasi I/O root tunggal (SR-IOV).
Misalnya, tumpukan virtualisasi yang berjalan dalam sistem operasi manajemen mengeluarkan permintaan metode OID OID_SRIOV_READ_VF_CONFIG_SPACE ketika driver miniport VF memanggil NdisMGetBusData untuk membaca dari ruang konfigurasi PCI VF-nya.
Ketika menangani permintaan metode OID dari OID_SRIOV_READ_VF_CONFIG_SPACE, driver miniport PF harus mengikuti panduan berikut:
Driver miniport harus memverifikasi bahwa VF, yang ditentukan oleh anggota VFId dari struktur NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS , memiliki sumber daya yang sebelumnya telah dialokasikan. Driver miniport mengalokasikan sumber daya untuk VF melalui permintaan metode OID OID_NIC_SWITCH_ALLOCATE_VF. Jika sumber daya untuk VF yang ditentukan belum dialokasikan, driver harus gagal dalam permintaan OID.
Driver miniport harus memverifikasi bahwa buffer (direferensikan oleh anggota InformationBuffer dari struktur NDIS_OID_REQUEST ) cukup besar untuk mengembalikan data ruang konfigurasi PCIe yang diminta. Jika ini tidak benar, driver harus gagal dalam permintaan OID.
Driver miniport biasanya memanggil NdisMGetVirtualFunctionBusData untuk mengkueri ruang konfigurasi PCIe yang diminta. Namun, driver miniport juga dapat mengembalikan data ruang konfigurasi PCIe untuk VF yang telah di-cache driver dari operasi baca atau tulis sebelumnya dari ruang konfigurasi PCIe.
Catatan Jika vendor perangkat keras independen (IHV) menyediakan driver bus virtual (VBD) sebagai bagian dari paket driver SR-IOV-nya, driver miniportnya tidak boleh memanggil NdisMGetVirtualFunctionBusData. Sebagai gantinya, driver harus berinteraksi dengan VBD melalui saluran komunikasi privat, dan meminta agar VBD memanggil ReadVfConfigBlock. Fungsi ini terekspos dari antarmuka GUID_VPCI_INTERFACE_STANDARD yang didukung oleh driver bus PCI virtual (VPCI) yang mendasar.
Jika driver miniport PF berhasil menyelesaikan permintaan OID, driver harus menyalin data ruang konfigurasi PCI yang diminta ke buffer yang direferensikan oleh anggota InformationBuffer dari struktur NDIS_OID_REQUEST . Driver menyalin data ke buffer pada offset yang ditentukan oleh anggota BufferOffset dari struktur NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS .
Untuk informasi selengkapnya, lihat Mengkueri Data Konfigurasi PCI dari Fungsi Virtual.
Mengembalikan Kode Status
Driver miniport PF mengembalikan salah satu kode status berikut untuk permintaan metode OID OID_SRIOV_READ_VF_CONFIG_SPACE.
Kode Status | Deskripsi |
---|---|
NDIS_STATUS_SUCCESS |
Permintaan OID berhasil diselesaikan. |
NDIS_STATUS_NOT_SUPPORTED |
Driver miniport tidak mendukung antarmuka virtualisasi I/O root tunggal (SR-IOV) atau tidak diaktifkan untuk menggunakan antarmuka. |
NDIS_STATUS_INVALID_PARAMETER |
Satu atau beberapa anggota struktur NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS memiliki nilai yang tidak valid. |
NDIS_STATUS_INVALID_LENGTH |
Buffer informasi terlalu pendek. Driver miniport harus mengatur DATA. METHOD_INFORMATION. Anggota BytesNeeded dalam struktur NDIS_OID_REQUEST ke ukuran buffer minimum yang diperlukan. |
NDIS_STATUS_FAILURE |
Permintaan gagal karena alasan lain. |
Persyaratan
Versi |
Didukung di NDIS 6.30 dan yang lebih baru. |
Header |
Ntddndis.h (termasuk Ndis.h) |
Lihat juga
NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS
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