Fungsi NdisMQueryProbedBars (ndis.h)

Driver miniport memanggil fungsi NdisMQueryProbedBars untuk mendapatkan nilai Base Address Register (RS) PCI Express (PCIe) adaptor jaringan. Fungsi ini mengembalikan nilai BAR yang dilaporkan oleh adaptor jaringan setelah kueri yang dilakukan oleh driver bus PCI. Kueri ini menentukan ruang alamat memori atau I/O yang diperlukan oleh adaptor jaringan.

CatatanNdisMQueryProbedBars hanya boleh dipanggil oleh driver miniport untuk PcIe Physical Function (PF) adaptor jaringan.
 

Sintaks

NDIS_STATUS NdisMQueryProbedBars(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [out] PULONG      BaseRegisterValues
);

Parameter

[in] NdisMiniportHandle

Adaptor jaringan menangani NDIS yang diteruskan ke parameter MiniportAdapterHandle dari MiniportInitializeEx.

[out] BaseRegisterValues

Penunjuk ke array nilai ULONG. Array berisi nilai ULONG untuk setiap BAR adaptor jaringan PCIe.

CatatanNdisMQueryProbedBars mengembalikan maksimum nilai PCI_TYPE0_ADDRESSES dalam array ini.
 

Nilai kembali

NdisMQueryProbedBars dapat mengembalikan salah satu nilai status berikut.

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
Operasi kueri berhasil diselesaikan.
NDIS_STATUS_FAILURE
Operasi kueri gagal.

Keterangan

Driver bus PCI, yang berjalan dalam sistem operasi manajemen partisi induk Hyper-V, meminta memori atau persyaratan ruang alamat I/O dari setiap PCI Base Address Register (BAR) adaptor jaringan. Driver bus PCI melakukan kueri ini saat pertama kali mendeteksi adaptor pada bus.

Melalui kueri PCI BAR ini, driver bus PCI menentukan hal berikut:

  • Apakah PCI BAR didukung oleh adaptor jaringan.
  • Jika BAR didukung, berapa banyak memori atau ruang alamat I/O yang diperlukan untuk BAR.
Driver bus PCI virtual (VPCI) berjalan dalam sistem operasi tamu partisi anak Hyper-V. Ketika Fungsi Virtual (VF) PCI Express (PCIe) dilampirkan ke partisi anak, driver bus VPCI akan mengekspos adaptor jaringan virtual untuk adaptor jaringan VF (VF). Sebelum melakukan ini, driver bus VPCI harus melakukan kueri PCI BAR untuk menentukan memori atau ruang alamat yang diperlukan oleh adaptor jaringan VF.

Karena akses ke ruang konfigurasi PCI adalah operasi istimewa, itu hanya dapat dilakukan oleh komponen yang berjalan dalam sistem operasi manajemen partisi induk Hyper-V. Ketika driver bus VPCI meminta PCI BAR, NDIS mengeluarkan permintaan kueri pengidentifikasi objek (OID) OID_SRIOV_PROBED_BARS ke driver miniport PF. Hasil yang dikembalikan oleh permintaan kueri OID ini diteruskan ke driver bus VPCI sehingga dapat menentukan berapa banyak ruang alamat memori yang akan diperlukan oleh adaptor jaringan VF.

Selama penanganan permintaan OID ini, driver dapat memanggil NdisMQueryProbedBars untuk mendapatkan nilai yang dikembalikan dari kueri BAR yang dilakukan oleh driver PCI.

Untuk informasi selengkapnya tentang cara mengkueri daftar PCI BAR untuk VF, lihat Mengkueri Daftar Alamat Dasar PCI dari 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 NdisMQueryProbedBars. Sebagai gantinya, driver harus berinteraksi dengan VBD melalui saluran komunikasi privat, dan meminta agar VBD memanggil GetVirtualFunctionProbedBars. 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 Didukung di NDIS 6.30 dan yang lebih baru.
Target Platform Universal
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL PASSIVE_LEVEL

Lihat juga

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionProbedBars

OID_SRIOV_PROBED_BARS