VIRTUAL_HW_FIND_ADAPTER fungsi panggilan balik (storport.h)

Miniport virtual Storport menggunakan informasi konfigurasi yang disediakan ke rutinitas VIRTUAL_HW_FIND_ADAPTER untuk menginisialisasi dirinya lebih lanjut.

Sintaks

VIRTUAL_HW_FIND_ADAPTER VirtualHwFindAdapter;

ULONG VirtualHwFindAdapter(
  PVOID DeviceExtension,
  PVOID HwContext,
  PVOID BusInformation,
  PVOID LowerDevice,
  PCHAR ArgumentString,
  PPORT_CONFIGURATION_INFORMATION ConfigInfo,
  PBOOLEAN Again
)
{...}

Parameter

DeviceExtension

Penunjuk ke area penyimpanan non-halaman per adaptor driver miniport. Driver port khusus sistem operasi mengalokasikan memori untuk dan menginisialisasi ekstensi ini dengan nol sebelum memanggil rutinitas VIRTUAL_HW_FIND_ADAPTER miniport.

HwContext

Penunjuk ke PDO di tumpukan perangkat. HBA itu sendiri adalah FDO. PDO mungkin milik driver Pci.sys jika driver miniport mengontrol perangkat keras fisik. Tetapi dalam kasus driver miniport virtual, PDO milik manajer PnP.

BusInformation

Penunjuk ke objek perangkat fungsi miniport (FDO).

LowerDevice

Penunjuk ke objek perangkat yang dikendalikan oleh FDO miniport.

ArgumentString

Penunjuk ke string ASCII yang dihentikan null. String ini, jika disediakan, berisi informasi perangkat dari registri seperti parameter dasar.

ConfigInfo

Penunjuk ke struktur PORT_CONFIGURATION_INFORMATION . Driver port menginisialisasi struktur ini dengan informasi konfigurasi yang diketahui, seperti nilai yang ditetapkan DriverEntry driver miniport dalam VIRTUAL_HW_INITIALIZATION_DATA. VIRTUAL_HW_FIND_ADAPTER harus menggunakan informasi yang disediakan untuk menentukan apakah HBA virtual yang dijelaskannya adalah salah satu yang didukung driver miniport. Jika demikian, VIRTUAL_HW_FIND_ADAPTER menginisialisasi dan mengonfigurasi HBA tersebut dan mengisi informasi konfigurasi yang hilang. Jika memungkinkan, driver miniport harus memiliki nilai konfigurasi default untuk setiap jenis HBA yang didukungnya, jika driver port yang bergantung pada sistem operasi tidak dapat menyediakan informasi konfigurasi tambahan yang tidak disediakan oleh rutinitas DriverEntry driver miniport.

Again

Tidak digunakan.

Mengembalikan nilai

VIRTUAL_HW_FIND_ADAPTER harus mengembalikan salah satu nilai status berikut:

Menampilkan kode Deskripsi
SP_RETURN_FOUND HBA yang didukung ditemukan dan bahwa informasi konfigurasi yang relevan dengan HBA berhasil ditentukan dan diatur dalam struktur PORT_CONFIGURATION_INFORMATION .
SP_RETURN_ERROR HBA ditemukan, tetapi terjadi kesalahan ketika memperoleh informasi konfigurasi. Jika memungkinkan, kesalahan seperti itu harus dicatat dengan ScsiPortLogError.
SP_RETURN_BAD_CONFIG Informasi konfigurasi yang disediakan tidak valid untuk adaptor.
SP_RETURN_NOT_FOUND Tidak ada HBA yang didukung yang ditemukan untuk informasi konfigurasi yang disediakan.

Keterangan

Bidang VirtualDevice dalam struktur informasi konfigurasi harus diatur ke TRUE. Bidang lain dapat diatur sesuai kebutuhan.

Driver port memanggil VIRTUAL_HW_FIND_ADAPTER Storport virtual miniport di PASSIVE_LEVEL.

Nama VirtualHwStorFindAdapter adalah teks tempat penampung untuk nama rutin aktual. Prototipe aktual dari rutinitas ini didefinisikan dalam Srb.h sebagai berikut:

typedef
ULONG
VIRTUAL_HW_FIND_ADAPTER (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  HwContext,
  _In_ PVOID  BusInformation,
  _In_ PVOID  LowerDevice,
  _In_ PCHAR  ArgumentString,
  _Inout_ PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
  _Out_ PBOOLEAN Again
  );

Contoh

Untuk menentukan fungsi panggilan balik VIRTUAL_HW_FIND_ADAPTER , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk driver. Mendeklarasikan fungsi menggunakan jenis fungsi panggilan balik membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.

Misalnya, untuk menentukan rutinitas panggilan balik VIRTUAL_HW_FIND_ADAPTER yang bernama MyVirtualHwFindAdapter, gunakan jenis VIRTUAL_HW_FIND_ADAPTER seperti yang ditunjukkan dalam contoh kode ini:

VIRTUAL_HW_FIND_ADAPTER MyVirtualHwFindAdapter;

Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:

_Use_decl_annotations_
ULONG
MyVirtualHwFindAdapter (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  HwContext,
  _In_ PVOID  BusInformation,
  _In_ PVOID  LowerDevice,
  _In_ PCHAR  ArgumentString,
  _Inout_ PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
  _Out_ PBOOLEAN Again
  );
  {
      ...
  }

Jenis fungsi VIRTUAL_HW_FIND_ADAPTER didefinisikan dalam file header Storport.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi VIRTUAL_HW_FIND_ADAPTER dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver Storport. Untuk informasi tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header storport.h (termasuk Storport.h)

Lihat juga

HwStorFindAdapter

PORT_CONFIGURATION_INFORMATION

ScsiPortLogError

VIRTUAL_HW_INITIALIZATION_DATA