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.

CatatanNdisMGetVirtualFunctionLocation hanya boleh dipanggil oleh driver miniport untuk PCIe Physical Function (PF) adaptor jaringan.
 

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:

  1. Driver pertama-tama memanggil fungsi NdisMGetVirtualFunctionLocation untuk mendapatkan informasi lokasi terkait bus untuk VF.
  2. 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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetLocation

NDIS_MAKE_RID

OID_NIC_SWITCH_ALLOCATE_VF