struktur SCSI_WMI_REQUEST_BLOCK (minitape.h)

Struktur ini adalah versi khusus dari SCSI_REQUEST_BLOCK untuk digunakan dengan perintah WMI.

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_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

Anggota

Length

Menentukan ukuran dalam byte struktur ini.

Function

SRB_FUNCTION_WMI, yang menentukan bahwa permintaan tersebut adalah permintaan WMI. Jika anggota ini tidak diatur ke SRB_FUNCTION_WMI, driver miniport harus gagal dalam permintaan.

SrbStatus

Mengembalikan status permintaan yang telah selesai. Anggota ini harus ditetapkan oleh driver miniport sebelum memberi tahu driver khusus OS bahwa permintaan telah selesai dengan memanggil ScsiPortNotification dengan RequestComplete. Nilai anggota ini dapat berupa nilai apa pun yang tercantum untuk SrbStatus dalam SCSI_REQUEST_BLOCK.

WMISubFunction

Menunjukkan tindakan WMI yang akan dilakukan. Driver miniport memanggil ScsiPortWmiDispatchFunction dengan MinorFunction diatur ke nilai ini. Nilai subfungsi sesuai dengan nomor IRP minor WMI yang mengidentifikasi operasi WMI.

PathId

Menunjukkan port atau bus SCSI untuk permintaan tersebut. Nilai ini berbasis nol. Jika SRB_WMI_FLAGS_ADAPTER_REQUEST diatur dalam WMIFlags, anggota ini dicadangkan.

TargetId

Menunjukkan pengontrol target atau perangkat di bus. Jika SRB_WMI_FLAGS_ADAPTER_REQUEST diatur dalam WMIFlags, anggota ini dicadangkan.

Lun

Menunjukkan nomor unit logis perangkat. Jika SRB_WMI_FLAGS_ADAPTER_REQUEST diatur dalam WMIFlags, anggota ini dicadangkan.

Reserved1

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

WMIFlags

Menunjukkan bahwa permintaan WMI adalah untuk adaptor jika SRB_WMI_FLAGS_ADAPTER_REQUEST diatur dan PathId, TargetId, dan Lun dicadangkan. Jika tidak, WMIFlags akan null, menunjukkan bahwa permintaan adalah untuk perangkat yang ditentukan oleh PathId, TargetId, dan Lun.

Reserved2[2]

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

SrbFlags

Menunjukkan berbagai parameter dan opsi tentang permintaan. SrbFlags bersifat baca-saja. Anggota ini akan diatur ke satu atau beberapa bendera berikut ini ORed bersama-sama:

SRB_FLAGS_DATA_IN

Menunjukkan data akan ditransfer dari perangkat ke sistem.

SRB_FLAGS_DATA_OUT

Menunjukkan data akan ditransfer dari sistem ke perangkat.

SRB_FLAGS_NO_DATA_TRANSFER

Menunjukkan tidak ada transfer data dengan permintaan ini. Jika ini diatur, bendera SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN, dan SRB_FLAGS_UNSPECIFIED_DIRECTION jelas.

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

Menunjukkan HBA, jika memungkinkan, harus melakukan I/O asinkron untuk permintaan transfer ini. Jika I/O sinkron dinegosiasikan sebelumnya, HBA harus melakukan negosiasi ulang untuk I/O asinkron sebelum melakukan transfer.

SRB_FLAGS_DISABLE_DISCONNECT

Menunjukkan HBA tidak boleh mengizinkan target untuk terputus dari bus SCSI selama pemrosesan permintaan ini.

DataTransferLength

Menunjukkan ukuran dalam byte buffer data. Driver miniport memanggil ScsiPortWmiDispatchFunction dengan BufferSize diatur ke nilai ini. Jika underrun terjadi, driver miniport harus memperbarui anggota ini ke jumlah byte yang benar-benar ditransfer.

TimeOutValue

Menunjukkan interval dalam hitungan detik yang dapat dijalankan permintaan sebelum driver port khusus OS mungkin menganggapnya kehabisan waktu. Driver miniport tidak diperlukan untuk permintaan waktu karena driver port sudah melakukannya.

DataBuffer

Menunjuk ke buffer data. Driver miniport memanggil ScsiPortWmiDispatchFunction dengan Buffer yang diatur ke nilai ini. Driver miniport dapat menggunakan nilai ini sebagai penunjuk data terlepas dari nilai MapBuffers dalam PORT_CONFIGURATION_INFORMATION untuk HBA. Driver miniport tidak dapat mentransfer data langsung ke buffer menggunakan DMA.

DataPath

Menentukan jalur data WMI untuk permintaan ini. Driver miniport memanggil ScsiPortWmiDispatchFunction dengan DataPath yang diatur ke nilai ini.

Reserved3

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

OriginalRequest

Menunjuk ke IRP untuk permintaan ini. Anggota ini tidak relevan dengan pengemudi miniport.

SrbExtension

Menunjuk ke ekstensi Srb. Driver miniport tidak boleh menggunakan anggota ini jika mengatur SrbExtensionSize ke nol dalam HW_INITIALIZATION_DATA. Memori di SrbExtension tidak diinisialisasi oleh driver port khusus OS, dan data yang ditentukan driver miniport dapat diakses langsung oleh HBA. Alamat fisik yang sesuai dapat diperoleh dengan memanggil ScsiPortGetPhysicalAddress dengan pointer SrbExtension .

Reserved4

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

Reserved6

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport. Anggota ini valid dimulai dengan Windows Server 2003 dengan SP1.

Reserved5[16]

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

Keterangan

Kelas penyimpanan Windows NT dan driver filter dapat mengirim SRB WMI ke driver port sistem. Driver port sistem akan menangani permintaan WMI tertentu atas nama driver miniport. Jika driver port tidak dapat menangani permintaan WMI, ia meneruskan permintaan ke driver miniport.

Driver miniport menerima permintaan WMI dari driver port hanya jika driver miniport mengatur WmiDataProvider dalam struktur PORT_CONFIGURATION_INFORMATION. Jika driver miniport mendukung permintaan, driver harus memprosesnya dan menyelesaikan permintaan dengan memanggil ScsiPortNotification dua kali, pertama dengan RequestComplete lalu dengan NextRequest (atau NextLuRequest).

Untuk informasi tentang mendukung WMI di driver miniport, lihat Instrumentasi Manajemen Windows.

Persyaratan

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

Lihat juga

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction