OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK

NDIS mengeluarkan permintaan metode pengidentifikasi objek (OID) OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK untuk memberi tahu driver miniport fungsi virtual (VF) PCI Express (PCIe) bahwa data dalam satu atau beberapa blok konfigurasi telah berubah. NDIS mengeluarkan OID ini ketika driver miniport untuk PcIe Physical Function (PF) memanggil NdisMInvalidateConfigBlock.

Anggota InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO . Struktur ini menentukan satu atau beberapa blok konfigurasi Fungsi Virtual (VF) yang datanya telah diubah (tidak valid) oleh driver miniport PF.

Keterangan

Blok konfigurasi VF digunakan untuk komunikasi backchannel antara driver miniport PF dan VF. IHV dapat menentukan satu atau beberapa blok konfigurasi VF untuk perangkat. Setiap blok konfigurasi VF memiliki format, panjang, dan ID blok yang ditentukan IHV.

Catatan Data dari setiap blok konfigurasi VF hanya digunakan oleh driver miniport PF dan VF.

Data konfigurasi VF dipertukarkan antara driver berikut:

  • Driver VF, yang berjalan di sistem operasi tamu. Sistem operasi ini berjalan dalam partisi anak Hyper-V.

  • Driver PF, yang berjalan dalam sistem operasi manajemen. Sistem operasi ini berjalan dalam partisi induk Hyper-V.

Untuk menangani pemberitahuan data konfigurasi VF yang tidak valid, NDIS dan driver miniport melakukan langkah-langkah berikut:

  1. Dalam sistem operasi tamu, NDIS mengeluarkan permintaan kontrol I/O permintaan IOCTL_VPCI_INVALIDATE_BLOCK . Ketika IOCTL ini selesai, NDIS diberi tahu bahwa data konfigurasi VF telah berubah.

  2. Dalam sistem operasi manajemen, langkah-langkah berikut terjadi:

    1. Driver miniport PF memanggil fungsi NdisMInvalidateConfigBlock untuk memberi tahu NDIS bahwa data konfigurasi VF telah berubah dan tidak lagi valid. Driver mengatur parameter BlockMask ke bitmask ULONGLONG yang menentukan blok konfigurasi VF mana yang telah berubah. Setiap bit dalam bitmask sesuai dengan blok konfigurasi VF. Jika bit diatur ke satu, data di blok konfigurasi VF yang sesuai telah berubah.

    2. NDIS menandakan tumpukan virtualisasi, yang berjalan dalam sistem operasi manajemen, tentang perubahan pada data blok konfigurasi VF. Tumpukan virtualisasi menyimpan data parameter BlockMask .

      Catatan Setiap kali driver miniport PF memanggil NdisMInvalidateConfigBlock, tumpukan virtualisasi menumpuk data parameter BlockMask dengan nilai saat ini dalam cache-nya.

    3. Tumpukan virtualisasi memberi tahu driver PCI virtual (VPCI), yang berjalan di sistem operasi tamu, tentang pembatalan data konfigurasi VF. Tumpukan virtualisasi mengirimkan data parameter BlockMask yang di-cache ke driver VPCI.

  3. Dalam sistem operasi Tamu, langkah-langkah berikut terjadi:

    1. Driver VPCI menyimpan data parameter BlockMask yang di-cache di anggota BlockMask dari struktur VPCI_INVALIDATE_BLOCK_OUTPUT yang terkait dengan permintaan IOCTL_VPCI_INVALIDATE_BLOCK .

    2. Driver VPCI berhasil menyelesaikan permintaan IOCTL_VPCI_INVALIDATE_BLOCK . Ketika ini terjadi, NDIS mengeluarkan permintaan metode OID OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK ke driver miniport VF. NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO diteruskan dalam permintaan OID. Struktur ini berisi data parameter BlockMask yang di-cache.

      NDIS juga mengeluarkan permintaan IOCTL_VPCI_INVALIDATE_BLOCK lain untuk menangani pemberitahuan perubahan berturut-turut pada data konfigurasi VF.

    3. Ketika driver VF menangani permintaan OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK, driver tersebut membaca data dari blok konfigurasi VF yang ditentukan.

Untuk informasi selengkapnya tentang komunikasi backchannel dalam antarmuka virtualisasi I/O root tunggal (SR-IOV), lihat Komunikasi Backchannel SR-IOV PF/VF.

Mengembalikan Kode Status

Driver miniport mengembalikan salah satu kode status berikut untuk permintaan metode OID OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK.

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_VF_INVALIDATE_CONFIG_BLOCK_INFO memiliki nilai yang tidak valid.

NDIS_STATUS_INVALID_LENGTH

Buffer informasi terlalu pendek. NDIS mengatur DATA. SET_INFORMATION. Anggota BytesNeeded dalam struktur NDIS_OID_REQUEST hingga ukuran struktur NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO .

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


IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_OID_REQUEST

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

NdisMInvalidateConfigBlock

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT