struktur VIRTUAL_HW_INITIALIZATION_DATA (storport.h)
Struktur VIRTUAL_HW_INITIALIZATION_DATA berisi informasi khusus untuk setiap driver miniport virtual.
Sintaks
typedef struct _VIRTUAL_HW_INITIALIZATION_DATA {
ULONG HwInitializationDataSize;
INTERFACE_TYPE AdapterInterfaceType;
PHW_INITIALIZE HwInitialize;
PHW_STARTIO HwStartIo;
PHW_INTERRUPT HwInterrupt;
PVIRTUAL_HW_FIND_ADAPTER HwFindAdapter;
PHW_RESET_BUS HwResetBus;
PHW_DMA_STARTED HwDmaStarted;
PHW_ADAPTER_STATE HwAdapterState;
ULONG DeviceExtensionSize;
ULONG SpecificLuExtensionSize;
ULONG SrbExtensionSize;
ULONG NumberOfAccessRanges;
PVOID Reserved;
UCHAR MapBuffers;
BOOLEAN NeedPhysicalAddresses;
BOOLEAN TaggedQueuing;
BOOLEAN AutoRequestSense;
BOOLEAN MultipleRequestPerLu;
BOOLEAN ReceiveEvent;
USHORT VendorIdLength;
PVOID VendorId;
union {
USHORT ReservedUshort;
USHORT PortVersionFlags;
};
USHORT DeviceIdLength;
PVOID DeviceId;
PHW_ADAPTER_CONTROL HwAdapterControl;
PHW_BUILDIO HwBuildIo;
PHW_FREE_ADAPTER_RESOURCES HwFreeAdapterResources;
PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
PHW_COMPLETE_SERVICE_IRP HwCompleteServiceIrp;
PHW_INITIALIZE_TRACING HwInitializeTracing;
PHW_CLEANUP_TRACING HwCleanupTracing;
} VIRTUAL_HW_INITIALIZATION_DATA, *PVIRTUAL_HW_INITIALIZATION_DATA;
Anggota
HwInitializationDataSize
Menentukan ukuran struktur ini dalam byte, seperti yang dikembalikan oleh sizeof(). Anggota ini menunjukkan versi struktur ini yang digunakan oleh driver miniport virtual. Rutinitas DriverEntry driver miniport virtual harus menetapkan nilai anggota ini untuk driver port.
AdapterInterfaceType
Untuk driver miniport virtual storport, nilai untuk AdapterInterfaceType hampir selalu internal. Ini karena driver Storport tidak mendukung bus warisan.
Perhatikan bahwa karena itu, sebagian besar jenis antarmuka adaptor yang digunakan dengan driver port SCSI tidak valid untuk driver Storport. Secara khusus, Storport tidak mendukung:
- Yesaya
- Eisa
- MicroChannel
- TurboChannel
Selain itu, tidak seperti kasus port SCSI, driver miniport virtual yang bekerja dengan driver Storport tidak diperlukan untuk menyediakan nilai untuk anggota berikut:
- VendorIdLength
- VendorId
- DeviceIdLength
- DeviceId
HwInitialize
Penunjuk ke rutinitas HwStorInitialize driver miniport virtual, yang merupakan titik masuk yang diperlukan untuk semua driver miniport virtual.
HwStartIo
Penunjuk ke rutinitas HwStorStartIo driver miniport virtual, yang merupakan titik masuk yang diperlukan untuk semua driver miniport virtual.
HwInterrupt
Tidak digunakan. Driver miniport virtual tidak memproses gangguan.
HwFindAdapter
Penunjuk ke rutinitas VirtualHwStorFindAdapter driver miniport virtual, yang merupakan titik masuk yang diperlukan untuk semua driver miniport virtual.
HwResetBus
Penunjuk ke rutinitas HwStorResetBus driver miniport virtual, yang merupakan titik masuk yang diperlukan untuk semua driver miniport virtual.
HwDmaStarted
Tidak digunakan. Driver miniport virtual tidak melakukan DMA.
HwAdapterState
Driver Storport tidak mendukung driver lama. Oleh karena itu, anggota ini harus NULL.
DeviceExtensionSize
Menentukan ukuran, dalam byte, yang diperlukan oleh driver miniport virtual untuk ekstensi perangkat non-halaman per adaptornya. Driver miniport virtual menggunakan ekstensi perangkatnya sebagai penyimpanan untuk informasi adaptor yang ditentukan driver. Driver port khusus sistem operasi menginisialisasi setiap ekstensi perangkat yang dialokasikan dengan nol, dan meneruskan pointer ke ekstensi perangkat khusus adaptor di sebagian besar panggilan ke driver miniport virtual. Ukuran yang diberikan tidak termasuk penyimpanan per unit-unit miniport virtual yang diminta driver.
SpecificLuExtensionSize
Menentukan ukuran, dalam byte, yang diperlukan oleh driver miniport virtual untuk penyimpanan non-halaman per unit logisnya, jika ada. Driver miniport virtual dapat menggunakan ekstensi unit logis (LU) sebagai penyimpanan untuk informasi LU yang ditentukan pengemudi tentang periferal pada bus virtual. Driver port khusus sistem operasi menginisialisasi setiap ekstensi LU yang dialokasikan dengan nol. Biarkan anggota ini diatur ke nol jika driver miniport virtual tidak mempertahankan informasi per LU yang memerlukan penyimpanan.
SrbExtensionSize
Menentukan ukuran, dalam byte, yang diperlukan oleh driver miniport virtual untuk penyimpanan non-halaman per permintaannya, jika ada. Karena driver miniport virtual yang bekerja dengan driver Storport harus mendukung daftar sebar/kumpulkan, dan daftar per-SRB menyebar/mengumpulkan biasanya dialokasikan dalam ekstensi SRB, anggota ini jarang nol.
NumberOfAccessRanges
Tidak digunakan. Driver miniport virtual tidak mendukung perangkat keras.
Reserved
Dicadangkan untuk penggunaan sistem.
MapBuffers
Nama | Deskripsi |
---|---|
STOR_MAP_NO_BUFFERS | Hanya memetakan buffer untuk SRB_FUNCTION_IO_CONTROL dan SRB_FUNCTION_WMI. |
STOR_MAP_ALL_BUFFERS | Kedaluarsa, perilaku yang sama seperti STOR_MAP_NON_READ_WRITE_BUFFERS. |
STOR_MAP_NON_READ_WRITE_BUFFERS | Buffer peta untuk permintaan IO kecuali BACA dan TULIS. |
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE | Buffer peta untuk semua permintaan IO termasuk BACA dan TULIS. Driver miniport biasanya akan menggunakan pengaturan ini. |
NeedPhysicalAddresses
Tidak digunakan. Driver miniport virtual tidak mendukung perangkat keras.
TaggedQueuing
Harus diatur ke TRUE. Nilai TRUE menunjukkan bahwa driver miniport virtual mendukung antrean bertag.
AutoRequestSense
Harus diatur ke TRUE. Nilai TRUE menunjukkan bahwa HBA dapat melakukan operasi request-sense tanpa memerlukan permintaan eksplisit untuk melakukannya.
MultipleRequestPerLu
Harus diatur ke TRUE. Nilai TRUE menunjukkan bahwa driver miniport virtual dapat mengantre beberapa permintaan per unit logis (LU).
ReceiveEvent
Nilai ini tidak lagi digunakan, dan dapat diatur ke TRUE atau FALSE.
VendorIdLength
Panjangnya, dalam byte, dari pengidentifikasi vendor.
VendorId
Pengidentifikasi vendor.
ReservedUshort
Dicadangkan.
PortVersionFlags
Bitmap bendera yang menunjukkan fitur yang didukung driver port. Saat ini, satu-satunya bendera yang tersedia adalah SP_VER_TRACE_SUPPORT, yang menunjukkan bahwa driver port mendukung pelacakan.
DeviceIdLength
Panjangnya, dalam byte, pengidentifikasi perangkat.
DeviceId
Pengidentifikasi perangkat.
HwAdapterControl
Penunjuk ke rutinitas HwStorAdapterControl driver miniport virtual.
HwBuildIo
Anggota ini tidak digunakan.
HwFreeAdapterResources
Penunjuk ke rutinitas HwStorFreeAdapterResources driver miniport virtual, yang merupakan titik masuk yang diperlukan untuk semua driver miniport virtual.
HwProcessServiceRequest
Penunjuk ke rutinitas HwStorProcessServiceRequest driver miniport virtual.
HwCompleteServiceIrp
Penunjuk ke rutinitas HwStorCompleteServiceIrp driver miniport virtual.
HwInitializeTracing
Penunjuk ke rutinitas HwStorInitializeTracing driver miniport virtual.
HwCleanupTracing
Penunjuk ke rutinitas HwStorCleanupTracing driver miniport virtual.
Keterangan
Jika driver miniport virtual hanya akan dijalankan pada Windows 8 atau yang lebih baru, driver harus menggunakan struktur HW_INITIALIZATION_DATA alih-alih VIRTUAL_HW_INITIALIZATION_DATA.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | storport.h (termasuk Storport.h) |