Fungsi NdisMGetVirtualFunctionLocation (ndis.h)
Driver miniport memanggil fungsi NdisMGetVirtualFunctionLocation untuk mengkueri lokasi perangkat Pci Express (PCIe) Virtual Function (VF) pada bus PCI. Driver menggunakan lokasi perangkat untuk membuat ID Pemohon PCIe (RID) untuk VF.
Sintaks
void NdisMGetVirtualFunctionLocation(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PUSHORT SegmentNumber,
[out] PUCHAR BusNumber,
[out] PUCHAR FunctionNumber
);
Parameter
[in] NdisMiniportHandle
Adaptor jaringan menangani NDIS yang diteruskan ke parameter MiniportAdapterHandle dari MiniportInitializeEx.
[in] VFId
Pengidentifikasi VF tempat lokasi perangkat dikembalikan.
[out] SegmentNumber
Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan nilai USHORT untuk nomor segmen PCI saat ini. Nilai ini menentukan grup bus PCI tempat perangkat terpasang.
[out] BusNumber
Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan nilai UCHAR. Nilai ini menentukan nomor bus PCI saat ini tempat perangkat terpasang.
[out] FunctionNumber
Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan nilai UCHAR. Nilai ini menentukan nomor fungsi perangkat logis pada perangkat.
Nilai kembali
Tidak ada
Keterangan
Ketika menangani permintaan metode OID_NIC_SWITCH_ALLOCATE_VF, driver miniport PF harus mengembalikan RID untuk VF yang telah berhasil dialokasikan driver pada adaptor jaringan. Driver menghasilkan RID dengan cara berikut:
- Driver pertama-tama memanggil fungsi NdisMGetVirtualFunctionLocation untuk mendapatkan informasi lokasi terkait bus untuk VF.
- Driver kemudian memanggil makro NDIS_MAKE_RID dengan informasi lokasi terkait bus untuk menghasilkan RID.
Untuk informasi selengkapnya tentang cara mengalokasikan sumber daya VF, lihat Urutan Inisialisasi Fungsi Virtual.
Untuk informasi selengkapnya tentang antarmuka SR-IOV, lihat Gambaran Umum Virtualisasi I/O Root Tunggal (SR-IOV).
Interfacing ke Driver Virtual Bus
Jika vendor perangkat keras independen (IHV) menyediakan driver bus virtual (VBD) sebagai bagian dari paket driver SR-IOV-nya, driver miniportnya tidak boleh memanggil NdisMGetVirtualFunctionLocation. Sebagai gantinya, driver harus berinteraksi dengan VBD melalui saluran komunikasi privat, dan meminta agar VBD memanggil GetLocation. Fungsi ini diekspos dari antarmuka GUID_PCI_VIRTUALIZATION_INTERFACE yang didukung oleh driver bus PCI yang mendasar.VBD yang berjalan dalam sistem operasi manajemen partisi induk Hyper-V dapat meminta antarmuka GUID_PCI_VIRTUALIZATION_INTERFACE dengan mengeluarkan permintaan IRP_MN_QUERY_INTERFACE ke objek perangkat fisik (PDO) pada bus PCI. Permintaan ini harus dibuat dari IRQL = PASSIVE_LEVEL. Dalam permintaan ini, driver harus mengatur parameter InterfaceType ke GUID_PCI_VIRTUALIZATION_INTERFACE.
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 | Universal |
Header | ndis.h (termasuk Ndis.h) |
Pustaka | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Lihat juga