PSCSIWMI_FUNCTION_CONTROL fungsi panggilan balik (scsiwmi.h)

Rutinitas HwScsiWmiFunctionControl driver miniport dipanggil untuk mengaktifkan atau menonaktifkan pemberitahuan peristiwa. Ini juga disebut untuk mengaktifkan atau menonaktifkan pengumpulan data untuk blok data yang ditetapkan driver miniport mahal untuk dikumpulkan. Rutinitas ini bersifat opsional.

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

PSCSIWMI_FUNCTION_CONTROL PscsiwmiFunctionControl;

BOOLEAN PscsiwmiFunctionControl(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] SCSIWMI_ENABLE_DISABLE_CONTROL Function,
  [in] BOOLEAN Enable
)
{...}

Parameter

[in] DeviceContext

Menunjuk ke nilai konteks miniport yang ditentukan driver yang diteruskan ke ScsiPortWmiDispatchFunction.

[in] RequestContext

Menunjuk ke nilai yang berisi nilai enumerator jenis SCSIWMI_REQUEST_CONTEXT yang diteruskan driver miniport ke ScsiPortWmiDispatchFunction.

[in] GuidIndex

Menentukan blok menurut indeksnya ke dalam daftar GUID dalam struktur SCSI_WMILIB_CONTEXT yang diteruskan driver miniport ke ScsiPortWmiDispatchFunction.

[in] Function

Menentukan ScsiWmiEventControl untuk mengaktifkan atau menonaktifkan peristiwa, atau ScsiWmiDataBlockControl untuk mengaktifkan atau menonaktifkan pengumpulan data untuk blok yang terdaftar mahal untuk dikumpulkan (yaitu, blok yang diatur driver miniport WMIREG_FLAG_EXPENSIVE dalam Bendera struktur SCSIWMIGUIDREGINFO yang digunakan untuk mendaftarkan blok).

[in] Enable

Menentukan TRUE untuk mengaktifkan peristiwa atau pengumpulan data, atau FALSE untuk menonaktifkannya.

Nilai kembali

HwScsiWmiFunctionControl mengembalikan SRB_STATUS_PENDING jika permintaan tertunda, atau nilai status SRB bukan nol jika permintaan selesai. Nilai status SRB yang dikembalikan oleh rutinitas ini sama dengan apa yang diteruskan ke ScsiPortWmiPostProcess. Meskipun jenis data nilai yang dikembalikan adalah BOOLEAN, rutinitas HwScsiWmiFunctionControl benar-benar mengembalikan nilai status SRB.

Keterangan

Ketika driver miniport menerima SRB di mana anggota Fungsi diatur ke SRB_FUNCTION_WMI, ia memanggil ScsiPortWmiDispatchFunction dengan pointer ke struktur SCSI_WMILIB_CONTEXT yang diinisialisasi dan MinorFunction diatur ke Srb-WmiSubFunction>. Driver port SCSI memanggil rutinitas HwScsiWmiFunctionControl driver miniport jika MinorFunction menunjukkan permintaan untuk mengaktifkan atau menonaktifkan peristiwa, atau untuk mengaktifkan atau menonaktifkan koleksi untuk blok data yang didaftarkan driver miniport mahal untuk dikumpulkan.

Jika driver miniport tidak menerapkan rutinitas HwScsiWmiFunctionControl , itu harus mengatur WmiFunctionControl ke NULL di SCSI_WMILIB_CONTEXT driver miniport lolos ke ScsiPortWmiDispatchFunction. Driver port mengembalikan SRB_STATUS_SUCCESS ke pemanggil.

Tidak perlu bagi driver miniport untuk memeriksa apakah peristiwa atau pengumpulan data sudah diaktifkan untuk blok karena driver port mengirim satu permintaan pengaktifan ketika konsumen data pertama mengaktifkan blok, dan mengirim satu permintaan nonaktifkan ketika konsumen data terakhir menonaktifkan blok. Driver port tidak akan memanggil HwScsiWmiFunctionControl lebih dari sekali untuk mengaktifkan blok tanpa panggilan intervensi untuk menonaktifkannya.

Jika SRB selesai dalam panggilan balik HwScsiWmiFunctionControl , maka driver miniport memanggil ScsiPortWmiPostProcess dengan SrbStatus yang sesuai. Jika driver miniport menunggu SRB ini, maka harus memanggil ScsiPortWmiPostProcess ketika SRB selesai dan sebelum menyelesaikan SRB.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header scsiwmi.h (termasuk Scsiwmi.h)

Lihat juga

SCSIWMIGUIDREGINFO

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess