Bagikan melalui


PSCSIWMI_SET_DATABLOCK fungsi panggilan balik (scsiwmi.h)

Rutinitas HwScsiWmiSetDataBlock driver miniport dipanggil untuk mengubah semua item data dalam satu instans blok data. 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_SET_DATABLOCK PscsiwmiSetDatablock;

BOOLEAN PscsiwmiSetDatablock(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

Parameter

[in] DeviceContext

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

[in] RequestContext

Menunjuk ke struktur SCSIWMI_REQUEST_CONTEXT yang diteruskan driver miniport ke ScsiPortWmiDispatchFunction.

[in] GuidIndex

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

[in] InstanceIndex

Jika blok yang ditentukan oleh GuidIndex memiliki beberapa instans, InstanceIndex menentukan instans.

[in] BufferSize

Menentukan ukuran dalam byte buffer di Buffer.

[in] Buffer

Menunjuk ke buffer yang berisi nilai baru untuk instans.

Nilai kembali

HwScsiWmiSetDataBlock 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.

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 HwScsiWmiSetDataBlock driver miniport jika MinorFunction menunjukkan permintaan untuk mengubah instans blok data.

Jika driver miniport tidak menerapkan rutinitas HwScsiWmiSetDataBlock , itu harus mengatur SetWmiDataBlock ke NULL di SCSI_WMILIB_CONTEXT driver miniport lolos ke ScsiPortWmiDispatchFunction. Dalam hal ini, driver port mengembalikan SRB_STATUS_ERROR ke pemanggil.

Jika driver miniport mengimplementasikan HwScsiWmiSetDataBlock , itu harus mengubah instans blok data ke nilai baru dari buffer.

Jika semua item di blok data bersifat baca-saja, driver miniport harus mengembalikan SRB_STATUS_ERROR. Jika tidak, driver miniport mengubah item yang dapat dan mengembalikan SRB_STATUS_SUCCESS.

Driver miniport harus memanggil ScsiPortWmiPostProcess dengan nilai SrbStatus yang sesuai ketika permintaan selesai. Jika permintaan tidak tertunda, ScsiPortWmiPostProcess harus dipanggil dalam panggilan balik HwScsiWmiSetDataBlock . Jika tidak, ScsiPortWmiPostProcess harus dipanggil ketika permintaan benar-benar selesai.

Persyaratan

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

Lihat juga

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess