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)

Lihat juga

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter