struktur SCSI_POWER_REQUEST_BLOCK (storport.h)

Struktur SCSI_POWER_REQUEST_BLOCK adalah versi khusus dari SCSI_REQUEST_BLOCK yang digunakan untuk permintaan manajemen daya.

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

typedef struct _SCSI_POWER_REQUEST_BLOCK {
  USHORT                     Length;
  UCHAR                      Function;
  UCHAR                      SrbStatus;
  UCHAR                      SrbPowerFlags;
  UCHAR                      PathId;
  UCHAR                      TargetId;
  UCHAR                      Lun;
  STOR_DEVICE_POWER_STATE    DevicePowerState;
  ULONG                      SrbFlags;
  ULONG                      DataTransferLength;
  ULONG                      TimeOutValue;
  PVOID                      DataBuffer;
  PVOID                      SenseInfoBuffer;
  struct _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID                      OriginalRequest;
  PVOID                      SrbExtension;
  STOR_POWER_ACTION          PowerAction;
  ULONG                      Reserved;
  UCHAR                      Reserved5[16];
} SCSI_POWER_REQUEST_BLOCK, *PSCSI_POWER_REQUEST_BLOCK;

Anggota

Length

Ukuran, dalam byte, dari struktur SCSI_POWER_REQUEST_BLOCK .

Function

Operasi yang akan dilakukan. Untuk struktur SCSI_POWER_REQUEST_BLOCK , anggota ini selalu diatur ke SRB_FUNCTION_POWER.

SrbStatus

Status permintaan yang telah selesai. Anggota ini harus ditetapkan oleh driver miniport sebelum memberi tahu driver Storport bahwa permintaan telah selesai. Driver miniport memberi tahu driver Storport bahwa permintaan telah selesai dengan memanggil fungsi StorPortNotification dengan jenis pemberitahuan RequestComplete .

Lihat SCSI_REQUEST_BLOCK dalam dokumentasi WDK untuk daftar nilai yang mungkin untuk anggota ini.

SrbPowerFlags

Bendera manajemen daya. Saat ini, satu-satunya bendera yang diizinkan adalah SRB_POWER_FLAGS_ADAPTER_REQUEST, yang menunjukkan bahwa permintaan manajemen daya adalah untuk adaptor. Jika bendera ini diatur, driver miniport harus mengabaikan nilai di PathId, TargetId, dan Lun.

PathId

Port SCSI atau pengidentifikasi bus untuk permintaan tersebut. Nilai ini berbasis nol.

TargetId

Pengontrol target atau pengidentifikasi perangkat di bus.

Lun

Nomor unit logis (LUN) perangkat.

DevicePowerState

Nilai enumerator jenis STOR_DEVICE_POWER_STATE yang menentukan status daya perangkat yang diminta.

SrbFlags

Driver Miniport harus mengabaikan anggota ini.

DataTransferLength

Driver Miniport harus mengabaikan anggota ini.

TimeOutValue

Interval, dalam hitungan detik, bahwa permintaan dapat dijalankan sebelum driver Storport menentukan bahwa permintaan telah kehabisan waktu.

DataBuffer

Driver Miniport harus mengabaikan anggota ini.

SenseInfoBuffer

Driver Miniport harus mengabaikan anggota ini.

NextSrb

Driver Miniport harus mengabaikan anggota ini.

OriginalRequest

Driver Miniport harus mengabaikan anggota ini.

SrbExtension

Penunjuk ke ekstensi SRB. Driver miniport tidak boleh menggunakan anggota ini jika mengatur SrbExtensionSize ke nol dalam struktur HW_INITIALIZATION_DATA . Driver Storport tidak menginisialisasi memori yang dituju anggota ini. HBA dapat langsung mengakses data yang ditulis driver miniport ke ekstensi SRB. Driver miniport dapat memperoleh alamat fisik ekstensi SRB dengan memanggil rutinitas StorPortGetPhysicalAddress .

PowerAction

Nilai enumerator jenis STOR_POWER_ACTION yang menentukan jenis pematian sistem yang akan terjadi. Nilai ini bermakna hanya jika perangkat berpindah ke status daya D1, D2, atau D3 seperti yang ditunjukkan oleh anggota DevicePowerState .

Reserved

Dicadangkan untuk penggunaan sistem.

Reserved5[16]

Dicadangkan untuk penggunaan sistem.

Keterangan

Driver Storport memanggil HwStorBuildIo untuk meneruskan SRB ke driver miniport. HwStorBuildIo harus memeriksa anggota Fungsi SRB untuk menentukan jenis SRB. Jika anggota Fungsi diatur ke SRB_FUNCTION_POWER, SRB adalah struktur jenis SCSI_POWER_REQUEST_BLOCK.

Driver Storport mengirim permintaan SCSI_POWER_REQUEST_BLOCK ke driver miniport untuk memberi tahu driver miniport peristiwa daya Windows yang memengaruhi perangkat penyimpanan yang terhubung ke adaptor. Dalam kasus peristiwa power up, permintaan ini memberi driver miniport kesempatan untuk menginisialisasi dirinya sendiri. Dalam kasus peristiwa hibernasi atau pematian, permintaan ini memberi driver miniport kesempatan untuk menyelesaikan permintaan I/O dan mempersiapkan pemadaman. Driver miniport dapat menggunakan nilai dalam anggota PowerActiondari SCSI_POWER_REQUEST_BLOCK untuk menentukan tindakan apa yang diperlukan. Setelah driver miniport menyelesaikan permintaan SCSI_POWER_REQUEST_BLOCK , driver Storport memanggil HwScsiAdapterControl dengan permintaan kontrol ScsiStopAdapter untuk mematikan adaptor. Driver miniport menginisialisasi ulang saat memproses permintaan SRB_FUNCTION_POWER, atau dapat menunggu dan menginisialisasi ulang ketika driver Storport memanggil HwStorAdapterControl untuk melakukan permintaan kontrol ScsiRestartAdapter .

Saat beralih dari status daya D0 ke status bertenaga lebih rendah (D1, D2, atau D3) driver Storport mengirimkan permintaan SCSI_POWER_REQUEST_BLOCK ke driver miniport sebelum driver bus yang mendasar mematikan adaptor.

Kondisi berikut harus ada sebelum driver Storport akan mengirim permintaan SCSI_POWER_REQUEST_BLOCK ke driver miniport:

  • Adapter tidak dihentikan.
  • Antrean I/O untuk adaptor dijeda.
  • Perangkat keras adaptor dinyalakan.
  • Miniport dapat mengakses sumber daya perangkat keras adaptor.

Persyaratan

Persyaratan Nilai
Header storport.h (termasuk Storport.h, Minitape.h, Srb.h)

Lihat juga

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification