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