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:

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


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS

NdisMGetBusData

NdisMGetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

ReadVfConfigBlock