HW_UNIT_CONTROL fungsi panggilan balik (storport.h)

Rutinitas HwStorUnitControl driver miniport dipanggil untuk melakukan operasi sinkron untuk mengontrol status perangkat unit penyimpanan.

Sintaks

HW_UNIT_CONTROL HwUnitControl;

SCSI_UNIT_CONTROL_STATUS HwUnitControl(
  [in] PVOID DeviceExtension,
  [in] SCSI_UNIT_CONTROL_TYPE ControlType,
  [in] PVOID Parameters
)
{...}

Parameter

[in] DeviceExtension

Penunjuk ke area penyimpanan per unit driver miniport.

[in] ControlType

Nilai SCSI_UNIT_CONTROL_TYPE yang menentukan operasi kontrol unit, di mana setiap jenis kontrol memulai tindakan oleh driver miniport. Lihat SCSI_UNIT_CONTROL_TYPE untuk detailnya.

[in] Parameters

Penunjuk ke struktur atau nilai yang berisi informasi yang terkait dengan ControlType. Semua struktur dialokasikan pemanggil. Lihat SCSI_UNIT_CONTROL_TYPE untuk detailnya.

Alamat

Alamat unit yang ditentukan untuk operasi kontrol.

Nilai kembali

Bergantung pada jenis kontrol, HwStorUnitControl mengembalikan salah satu nilai SCSI_UNIT_CONTROL_STATUS berikut:

Menampilkan kode Deskripsi
ScsiUnitControlSuccess Driver miniport berhasil menyelesaikan operasi yang diminta.
ScsiUnitControlUnsuccessful Operasi kontrol unit tidak berhasil.

Keterangan

Storport memanggil HwStorUnitControl miniport dengan jenis kontrol ScsiQuerySupportedControlTypes setelah HBA diinisialisasi tetapi sebelum I/O pertama. Driver miniport mengisi struktur SCSI_SUPPORTED_CONTROL_TYPE_LIST di Parameter dengan operasi yang didukungnya. Setelah HwStorUnitControl kembali dari panggilan ini, driver Storport memanggil panggilan balik HwStorAdapterControl driver miniport hanya untuk operasi yang didukung oleh miniport.

Storport memanggil HwStorUnitControl untuk memberi tahu driver miniport tentang perubahan pada perangkat unit yang diidentifikasi oleh Alamat, atau bahwa miniport harus melakukan operasi kueri atau mengatur pada unit tersebut, seperti memulai unit atau menangani operasi kontrol daya untuk unit.

Tabel berikut mencantumkan IRQL saat ini dan spinlock yang diperoleh saat jenis kontrol dikeluarkan.

Control Type IRQL Kunci putar
ScsiQuerySupportedControlTypes PASSIVE_LEVEL Tidak ada
ScsiUnitUsage PASSIVE_LEVEL Tidak ada
ScsiUnitStart PASSIVE_LEVEL Tidak ada
ScsiUnitPower DISPATCH_LEVEL Tidak ada
ScsiUnitPoFxPowerInfo PASSIVE_LEVEL Tidak ada
ScsiUnitPoFxPowerRequired DISPATCH_LEVEL Tidak ada
ScsiUnitPoFxPowerActive DISPATCH_LEVEL Tidak ada
ScsiUnitPoFxPowerSetFState DISPATCH_LEVEL Tidak ada
ScsiUnitPoFxPowerControl DISPATCH_LEVEL Tidak ada
ScsiUnitRemove PASSIVE_LEVEL Tidak ada
ScsiUnitSurpriseRemoval PASSIVE_LEVEL Tidak ada
ScsiUnitRichDescription PASSIVE_LEVEL Tidak ada
ScsiUnitQueryBusType PASSIVE_LEVEL Tidak ada
ScsiUnitQueryFruId PASSIVE_LEVEL Tidak ada

Nama HwStorUnitControl hanyalah tempat penampung. Prototipe aktual dari rutinitas ini didefinisikan dalam storport.h sebagai berikut:

typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
  _In_ PVOID  DeviceExtension,
  _In_ SCSI_UNIT_CONTROL_TYPE  ControlType,
  _In_ PVOID  Parameters
  );

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Target Platform Universal
Header storport.h (termasuk Storport.h)
IRQL Lihat Keterangan.

Lihat juga

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE