Bagikan melalui


Fungsi ScsiPortWmiSetInstanceCount (scsiwmi.h)

ScsiPortWmiSetInstanceCount menentukan jumlah instans di mana buffer data harus disisihkan dalam struktur WNODE_ALL_DATA dalam konteks permintaan.

Catatan Driver port SCSI dan model driver miniport SCSI dapat diubah atau tidak tersedia di masa mendatang. Sebagai gantinya, sebaiknya gunakan driver Storport dan model driver miniport Storport .
 

Sintaks

BOOLEAN ScsiPortWmiSetInstanceCount(
  [in]  PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in]  ULONG                    InstanceCount,
  [out] PULONG                   BufferAvail,
  [out] PULONG                   SizeNeeded
);

Parameter

[in] RequestContext

Penunjuk ke struktur jenis SCSIWMI_REQUEST_CONTEXT yang berisi konteks permintaan untuk WMI SRB.

[in] InstanceCount

Berisi jumlah instans yang akan disediakan minidriver data.

[out] BufferAvail

Berisi, saat dikembalikan, jumlah byte ruang buffer yang tersedia untuk menjelaskan nama dan data instans. Nilai yang dikembalikan dalam anggota ini dapat diteruskan ke rutinitas ScsiPortWmiSetData dan ScsiPortWmiSetInstanceName dalam parameter BufferAvail dari rutinitas tersebut.

Rutinitas ScsiPortWmiSetInstanceCount menginisialisasi array pointer ke buffer data, dengan satu elemen array untuk setiap instans. Jika tidak ada cukup memori yang tersedia di WNODE untuk menginisialisasi array ukuran InstanceCount, nol akan dikembalikan dalam anggota ini.

[out] SizeNeeded

Menunjukkan, pada input, jumlah byte yang diperlukan untuk menjelaskan seluruh WNODE sebelum mengonfigurasi array internal di WNODE. Saat kembali, anggota ini akan berisi ukuran seluruh WNODE, termasuk array yang baru diinisialisasi dalam WNODE.

Nilai kembali

Rutinitas ScsiPortWmiSetInstanceCount mengembalikan TRUE jika operasi berhasil dan FALSE jika WNODE yang terkandung dalam konteks permintaan tidak berjenis WNODE_ALL_DATA.

Keterangan

Minidriver harus memanggil ScsiPortWmiSetInstanceCount sebelum memanggil ScsiPortWmiSetData atau ScsiPortWmiSetInstanceName. Minidriver hanya boleh memanggil ScsiPortWmiSetInstanceCount sekali.

Parameter RequestContext menunjuk ke struktur konteks permintaan, SCSIWMI_REQUEST_CONTEXT, yang berisi informasi yang terkait dengan blok permintaan SCSI Windows Management Instrumentation (WMI). Struktur konteks permintaan, pada gilirannya, berisi salah satu Struktur WNODE_XXX WMI yang digunakan oleh sistem WMI untuk meneruskan data antara konsumen data mode pengguna dan penyedia data mode kernel seperti driver.

Rutinitas ScsiPortWmiSetInstanceCount memerlukan struktur WNODE yang ditentukan dalam konteks permintaan untuk berjenis WNODE_ALL_DATA. Ini karena ScsiPortWmiSetInstanceCount menyisihkan area data yang akan menyimpan informasi untuk beberapa instans yang terkait dengan blok data WMI. Tidak seperti struktur WNODE_SINGLE_INSTANCE yang berisi informasi tentang satu instans, struktur WNODE_ALL_DATA berisi array pointer ke area buffer untuk instans yang berbeda, dan ScsiPortWmiSetInstanceCount menginisialisasi array ini, sehingga setiap buffer data instans dapat diakses secara individual menggunakan indeks instans.

Memori yang dialokasikan untuk konteks permintaan harus tetap valid sampai setelah driver miniport memanggil ScsiPortWmiPostProcess, dan ScsiPortWmiPostProcess mengembalikan status SRB akhir dan ukuran buffer. Jika SRB dapat tertunda, memori untuk konteks permintaan harus dialokasikan dari ekstensi SRB. Jika SRB tidak dapat tertunda, memori dapat dialokasikan dari bingkai tumpukan yang tidak keluar dari cakupan.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header scsiwmi.h (termasuk Miniport.h, Scsi.h)

Lihat juga

SCSIWMI_REQUEST_CONTEXT

WNODE_ALL_DATA

WNODE_SINGLE_INSTANCE