struktur SCSI_WMI_REQUEST_BLOCK (srb.h)
Struktur ini adalah versi khusus dari SCSI_REQUEST_BLOCK untuk digunakan dengan perintah WMI.
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 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 di 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
Disediakan 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 menjadi NULL, menunjukkan bahwa permintaan adalah untuk perangkat yang ditentukan oleh PathId, TargetId, dan Lun.
Reserved2[2]
Disediakan 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 bernegosiasi ulang untuk I/O asinkron sebelum melakukan transfer.
SRB_FLAGS_DISABLE_DISCONNECT
Menunjukkan HBA tidak boleh mengizinkan target 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 bahwa permintaan dapat dijalankan 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 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
Disediakan 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
Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.
Reserved6
Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport. Anggota ini valid dimulai dengan Windows Server 2003 dengan SP1.
Reserved5[16]
Disediakan 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 dan kemudian dengan NextRequest (atau NextLuRequest).
Untuk informasi tentang mendukung WMI di driver miniport, lihat Instrumentasi Manajemen Windows.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | srb.h (termasuk Storport.h, Srb.h, Storport.h, Minitape.h) |