struktur PORT_CONFIGURATION_INFORMATION (storport.h)

PORT_CONFIGURATION_INFORMATION berisi informasi konfigurasi untuk adaptor bus host (HBA).

Sintaks

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG                                  Length;
  ULONG                                  SystemIoBusNumber;
  INTERFACE_TYPE                         AdapterInterfaceType;
  ULONG                                  BusInterruptLevel;
  ULONG                                  BusInterruptVector;
  KINTERRUPT_MODE                        InterruptMode;
  ULONG                                  MaximumTransferLength;
  ULONG                                  NumberOfPhysicalBreaks;
  ULONG                                  DmaChannel;
  ULONG                                  DmaPort;
  DMA_WIDTH                              DmaWidth;
  DMA_SPEED                              DmaSpeed;
  ULONG                                  AlignmentMask;
  ULONG                                  NumberOfAccessRanges;
  ACCESS_RANGE( )                          *AccessRanges[];
  PVOID                                  MiniportDumpData;
  PVOID                                  Reserved;
  UCHAR                                  NumberOfBuses;
  CCHAR                                  InitiatorBusId[8];
  BOOLEAN                                ScatterGather;
  BOOLEAN                                Master;
  BOOLEAN                                CachesData;
  BOOLEAN                                AdapterScansDown;
  BOOLEAN                                AtdiskPrimaryClaimed;
  BOOLEAN                                AtdiskSecondaryClaimed;
  BOOLEAN                                Dma32BitAddresses;
  BOOLEAN                                DemandMode;
  UCHAR                                  MapBuffers;
  BOOLEAN                                NeedPhysicalAddresses;
  BOOLEAN                                TaggedQueuing;
  BOOLEAN                                AutoRequestSense;
  BOOLEAN                                MultipleRequestPerLu;
  BOOLEAN                                ReceiveEvent;
  BOOLEAN                                RealModeInitialized;
  BOOLEAN                                BufferAccessScsiPortControlled;
  UCHAR                                  MaximumNumberOfTargets;
  UCHAR                                  SrbType;
  UCHAR                                  AddressType;
  UCHAR                                  ReservedUchars[2];
  ULONG                                  SlotNumber;
  ULONG                                  BusInterruptLevel2;
  ULONG                                  BusInterruptVector2;
  KINTERRUPT_MODE                        InterruptMode2;
  ULONG                                  DmaChannel2;
  ULONG                                  DmaPort2;
  DMA_WIDTH                              DmaWidth2;
  DMA_SPEED                              DmaSpeed2;
  ULONG                                  DeviceExtensionSize;
  ULONG                                  SpecificLuExtensionSize;
  ULONG                                  SrbExtensionSize;
  UCHAR                                  Dma64BitAddresses;
  BOOLEAN                                ResetTargetSupported;
  UCHAR                                  MaximumNumberOfLogicalUnits;
  BOOLEAN                                WmiDataProvider;
  STOR_SYNCHRONIZATION_MODEL             SynchronizationModel;
  PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine;
  INTERRUPT_SYNCHRONIZATION_MODE         InterruptSynchronizationMode;
  MEMORY_REGION                          DumpRegion;
  ULONG                                  RequestedDumpBufferSize;
  BOOLEAN                                VirtualDevice;
  UCHAR                                  DumpMode;
  UCHAR                                  DmaAddressWidth;
  ULONG                                  ExtendedFlags1;
  ULONG                                  MaxNumberOfIO;
  ULONG                                  MaxIOsPerLun;
  ULONG                                  InitialLunQueueDepth;
  ULONG                                  BusResetHoldTime;
  ULONG                                  FeatureSupport;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Anggota

Length

Ukuran, dalam byte, dari struktur PORT_CONFIGURATION_INFORMATION . Diinisialisasi oleh driver Storport, anggota ini juga berfungsi sebagai versi struktur.

SystemIoBusNumber

Nomor bus I/O yang ditetapkan sistem tempat HBA terhubung. Driver miniport tidak boleh mengubah anggota ini. Nilainya ditetapkan sistem karena platform mungkin memiliki beberapa bus I/O dari AdapterInterfaceType yang ditentukan.

AdapterInterfaceType

Antarmuka bus I/O. Storport menginisialisasi anggota ini ke nilai yang ditentukan oleh driver miniport dalam struktur HW_INITIALIZATION_DATA . Driver miniport tidak boleh mengubah anggota ini.

BusInterruptLevel

Tingkat permintaan interupsi relatif bus. Storport tidak membuat asumsi tentang penggunaan interupsi HBA, sehingga nilai defaultnya adalah nol. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

BusInterruptVector

Vektor relatif bus dikembalikan oleh HBA. Storport tidak membuat asumsi tentang penggunaan interupsi HBA, sehingga nilai defaultnya adalah nol. Anggota ini tidak relevan dengan pengemudi yang menyiapkan anggota BusInterruptLevel untuk HBA mereka. Hal ini berkaitan dengan HBA pada jenis bus I/O yang menggunakan vektor interupsi, seperti PCIBus. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

InterruptMode

Menentukan apakah HBA menggunakan interupsi LevelSensitive atau Latched (terkadang disebut "edge-triggered"). Storport menginisialisasi anggota ini ke nilai yang sesuai untuk bus dan perangkat--misalnya, LevelSensitive untuk PCIBus. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

MaximumTransferLength

Jumlah maksimum byte yang dapat ditransfer HBA dalam satu operasi transfer. Secara default, nilai anggota ini adalah SP_UNINITIALIZED_VALUE, yang menunjukkan ukuran transfer maksimum tak terbatas. Jika HBA-nya memiliki dukungan transfer yang lebih terbatas, driver miniport harus mengatur ulang anggota ini sesuai dengan kapasitas transfer HBA. Jika rutinitas HwStorInterrupt driver miniport tidak dapat menonaktifkan gangguan pada HBA, anggota ini dapat disesuaikan selama pengembangan driver untuk memastikan bahwa waktu yang dihabiskan dalam ISR driver miniport tidak menurunkan performa sistem secara keseluruhan.

NumberOfPhysicalBreaks

Jumlah maksimum halaman fisik yang dapat dikelola adaptor penyimpanan dalam satu transfer (dengan kata lain, sejauh dukungannya menyebar/mengumpulkan). Secara default, nilai anggota ini adalah 0x11. Driver miniport harus mengatur ulang anggota ini sesuai dengan kemampuan adaptor penyimpanan.

DmaChannel

Saluran DMA yang digunakan oleh HBA bawahan. Secara default, nilai anggota ini SP_UNINITIALIZED_VALUE. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

DmaPort

Port DMA yang digunakan oleh HBA bawahan. Secara default, nilai anggota ini SP_UNINITIALIZED_VALUE. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

DmaWidth

Lebar transfer DMA jika HBA menggunakan DMA. Secara default, nilai anggota ini adalah nol. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

DmaSpeed

Kecepatan transfer data DMA untuk Eisa HBA. Storport menginisialisasi anggota ini dan driver miniport tidak boleh memodifikasinya.

AlignmentMask

Masker yang menunjukkan pembatasan perataan untuk buffer yang diperlukan oleh HBA untuk operasi transfer. Beberapa contoh nilai masker yang valid adalah 0 (byte aligned), 1 (word aligned), 3 (DWORD aligned) dan 7 (double DWORD aligned). Driver miniport harus mengatur masker ini jika HBA mendukung sebar/berkumpul. Nilai masker perataan yang diizinkan berikut didefinisikan dalam wdm.h:

Nilai Makna
FILE_BYTE_ALIGNMENT (0x00000000) Data diratakan byte (tidak ada persyaratan penyelarasan untuk perangkat)
FILE_WORD_ALIGNMENT (0x00000001) Data harus diratakan pada batas 2 byte.
FILE_LONG_ALIGNMENT (0x00000003) Data harus diratakan pada batas 4 byte.
FILE_QUAD_ALIGNMENT (0x00000007) Data harus diratakan pada batas 8-byte.
FILE_OCTA_ALIGNMENT (0x0000000f) Data harus diratakan pada batas 16 byte.
FILE_32_BYTE_ALIGNMENT (0x0000001f) Data harus diratakan pada batas 32 byte.
FILE_64_BYTE_ALIGNMENT (0x0000003f) Data harus diratakan pada batas 64 byte.
FILE_128_BYTE_ALIGNMENT (0x0000007f) Data harus diratakan pada batas 128 byte.
FILE_256_BYTE_ALIGNMENT (0x000000ff) Data harus diratakan pada batas 256 byte.
FILE_512_BYTE_ALIGNMENT (0x000001ff) Data harus diratakan pada batas 512 byte.

NumberOfAccessRanges

Menentukan jumlah elemen AccessRanges dalam array.

AccessRanges

Arahkan ke array elemen jenis ACCESS_RANGE. Storport mengalokasikan memori untuk rentang akses dan menginisialisasi anggota ini. Driver miniport tidak boleh mengubah anggota ini.

MiniportDumpData

Penunjuk ke konteks cadangan yang digunakan selama crashdump atau hibernasi.

Reserved

Dicadangkan untuk penggunaan sistem (pra-Windows 8).

NumberOfBuses

Jumlah bus yang dikontrol oleh adaptor. Secara default, nilai anggota ini adalah nol. Anggota ini memiliki nilai maksimum SCSI_MAXIMUM_BUSES_PER_ADAPTER. Anggota ini tersedia mulai dari Windows 8.

InitiatorBusId[8]

ID bus inisiator. Jika input InitiatorBusId[0] memiliki nilai SP_UNINITIALIZED_VALUE, driver miniport dapat menetapkan nilai default jika HBA-nya tidak memerlukan penggunaan nilai tertentu yang ditentukan dengan mengkueri HBA. Jika tidak, driver miniport harus menggunakan nilai bukan nol yang ditetapkan oleh driver port jika memungkinkan. Biasanya, nilai ini dibatasi oleh nilai yang ditetapkan untuk MaximumNumberOfTargets.

ScatterGather

Ketika TRUE, HBA mendukung sebar/kumpulkan. Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung scatter/gather. Driver miniport yang bekerja dengan Storport tidak boleh memodifikasi nilai ini. (CATATAN: di versi Windows sebelum Windows Server 2008 R2 dan Windows 7, anggota ini diatur ke FALSE. Dalam hal ini, driver miniport harus mengatur anggota ini ke TRUE. Tidak mengatur anggota ini ke TRUE akan menyebabkan perangkat HBA gagal dimulai.)

Master

Jika TRUE, HBA adalah bus master. Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung DMA yang menguasai bus. Driver miniport yang bekerja dengan Storport tidak boleh memodifikasi nilai ini. (CATATAN: di versi Windows sebelum Windows Server 2008 R2 dan Windows 7, anggota ini diatur ke FALSE. Dalam hal ini, driver miniport harus mengatur anggota ini ke TRUE. Tidak mengatur anggota ini ke TRUE akan menyebabkan perangkat HBA gagal dimulai.)

CachesData

Saat TRUE, HBA menyimpan data atau mempertahankan status cache pada periferal. Ketika FALSE, HBA tidak menyimpan data atau mempertahankan status cache pada periferal. Secara default, nilai anggota ini adalah FALSE. Jika ini diatur ulang ke TRUE, Storport memberi tahu driver miniport ketika peristiwa sistem tertentu terjadi, seperti flush cache sistem file.

AdapterScansDown

Storport mengabaikan anggota ini.

AtdiskPrimaryClaimed

Storport tidak menggunakan anggota ini, dan driver miniport-nya tidak boleh mengaturnya.

AtdiskSecondaryClaimed

Storport tidak menggunakan anggota ini, dan driver miniport-nya tidak boleh mengaturnya.

Dma32BitAddresses

Ketika TRUE, HBA memiliki 32 baris alamat dan dapat mengakses memori dengan alamat fisik yang lebih besar dari 0x00FFFFFF. Storport menginisialisasi anggota ini ke TRUE, karena driver miniport-nya harus mendukung DMA lebar bus. Driver Miniport tidak boleh mengubah nilai ini karena ini adalah alamat DMA default jika nilai untuk Dma64BitAddresses tidak diatur. CATATAN: Jika hanya alamat 32-bit yang didukung oleh perangkat keras perangkat, maka Dma64BitAddresses harus diatur ke 0.

DemandMode

Menunjukkan apakah pengontrol DMA sistem harus diprogram untuk mode permintaan daripada operasi siklus tunggal. Storport menginisialisasi anggota ini ke FALSE, karena tidak mendukung DMA mode subordinat. Driver Miniport tidak boleh mengubah nilai ini.

MapBuffers

Menunjukkan apakah Storport memetakan alamat buffer data SRB ke alamat virtual sistem. Driver miniport mengatur anggota ini ke salah satu nilai berikut untuk mengontrol pemetaan untuk alamat buffer data SRB.

Nilai Makna
STOR_MAP_NO_BUFFERS Memetakan buffer hanya untuk SRB_FUNCTION_IO_CONTROL dan SRB_FUNCTION_WMI.
STOR_MAP_ALL_BUFFERS Kedaluwarsa. Nilai ini memiliki efek yang sama dengan STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Memetakan buffer untuk semua IO kecuali untuk permintaan baca dan tulis.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Memetakan buffer untuk semua IO termasuk permintaan baca dan tulis. Miniports mendukung boot harus menangani permintaan baca atau tulis PAGE_SIZE panjangnya. Permintaan baca atau tulis ini harus selalu berhasil diselesaikan. Storport mungkin gagal memetakan buffer dalam kondisi memori sistem yang rendah. Dalam hal ini, anggota DataBuffer di SRB akan menjadi NULL.

NeedPhysicalAddresses

Ketika TRUE, driver miniport harus menerjemahkan alamat virtual ke alamat fisik, seperti yang diperlukan oleh HBA. Storport menginisialisasi anggota ini ke TRUE, karena driver miniport-nya harus mendukung daftar sebar/kumpulkan. Miniport tidak boleh mengubah nilai ini.

TaggedQueuing

Ketika TRUE, HBA mendukung antrean beberapa permintaan dengan tag SCSI. Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung tagged-queuing. Driver Miniport tidak boleh mengubah nilai ini.

AutoRequestSense

Ketika TRUE, HBA mendukung pengertian permintaan otomatis. Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung pengertian permintaan otomatis. Driver Miniport tidak boleh mengubah nilai ini.

MultipleRequestPerLu

Ketika TRUE, HBA mendukung beberapa permintaan per unit logis. Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung beberapa permintaan yang dikeluarkan ke unit logis pada saat itu. Driver Miniport tidak boleh mengubah nilai ini.

ReceiveEvent

Storport tidak menggunakan anggota ini, dan driver miniport-nya tidak boleh mengaturnya.

RealModeInitialized

Storport tidak menggunakan anggota ini, dan driver miniport-nya tidak boleh mengaturnya.

BufferAccessScsiPortControlled

Storport tidak menggunakan anggota ini, dan driver miniport-nya tidak boleh mengaturnya.

MaximumNumberOfTargets

Jumlah periferal target yang dapat dikontrol adaptor. Secara default, nilai anggota ini adalah SCSI_MAXIMUM_TARGETS_PER_BUS. Driver miniport dapat mengatur ulang anggota ini ke nilai yang lebih rendah jika HBA memiliki kemampuan yang lebih terbatas atau ke nilai yang lebih besar, menunjukkan bahwa HBA memiliki kemampuan bus yang diperluas. Nilai maksimum untuk anggota ini adalah 255.

SrbType

Jenis SRB yang akan dikirim ke driver miniport. Tersedia mulai dari Windows 8. Ini diatur ke salah satu nilai berikut:

Nilai Makna
SRB_TYPE_SCSI_REQUEST_BLOCK Driver miniport menerima SRB standar.
SRB_TYPE_STORAGE_REQUEST_BLOCK Driver miniport menerima SRB yang diperluas.

AddressType

Jenis alamat yang digunakan antara Storport dan driver miniport. Tersedia mulai dari Windows 8. Ini dapat diatur ke nilai berikut:

Nilai Makna
STORAGE_ADDRESS_TYPE_BTL8 Alamat 8-bit Bus, Target, dan LUN (BTL).

ReservedUchars[2]

Dicadangkan untuk penggunaan sistem (pra-Windows 8).

SlotNumber

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

BusInterruptLevel2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

BusInterruptVector2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

InterruptMode2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

DmaChannel2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

DmaPort2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

DmaWidth2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

DmaSpeed2

Dicadangkan untuk digunakan oleh Storport. Driver Miniport tidak boleh mengubah anggota ini.

DeviceExtensionSize

Ukuran, dalam byte, diperlukan oleh driver miniport untuk ekstensi perangkat per adaptornya. Driver miniport menggunakan ekstensi perangkatnya sebagai penyimpanan untuk informasi HBA yang ditentukan driver. Driver port khusus sistem operasi menginisialisasi setiap ekstensi perangkat satu kali, ketika pertama kali mengalokasikan ekstensi, dan mengisinya dengan nol. Ini meneruskan pointer ke ekstensi perangkat khusus HBA di setiap panggilan ke driver miniport. Ukuran yang diberikan tidak termasuk penyimpanan miniport yang diminta driver per unit logis. Ukuran penyimpanan per unit logis ditentukan melalui bidang SpecificLuExtensionSize , yang dijelaskan nanti dalam topik ini.

Storport tidak mengikuti model SCSIPort (yang menginisialisasi ulang ekstensi perangkat setiap kali adaptor dihentikan dan dengan demikian panggilan berikutnya ke HwScsiFindAdapter menerima ekstensi perangkat zeroed-out). Sebaliknya, Storport mengatur ulang ekstensi perangkat ke nol hanya ketika pertama kali dialokasikan, jadi hanya panggilan pertama ke HwStorFindAdapter untuk adaptor tertentu yang menerima ekstensi perangkat zeroed-out. Panggilan berikutnya ke HwStorFindAdapter dan fungsi miniport lainnya menerima ekstensi perangkat seperti yang terakhir dimodifikasi oleh driver miniport. Ini memungkinkan driver miniport untuk menjaga pengetahuan tentang status adaptor antara Plug and Play (PnP) berhenti dan menghidupkan ulang, mungkin memungkinkan driver miniport untuk mengoptimalkan prosedur inisialisasinya.

SpecificLuExtensionSize

Ukuran dalam byte yang diperlukan oleh driver miniport untuk per-logical-unit-storage, jika ada, untuk menangani transfer data yang lebih besar dari 64K. Storport menginisialisasi anggota ini ke nilai dalam anggota struktur HW_INITIALIZATION_DATA yang sama yang dikirim dalam rutinitas StorPortInitialize .

Atur anggota ini ke nol jika driver miniport tidak mempertahankan informasi per LU yang memerlukan penyimpanan. Nilai ini didasarkan pada asumsi bahwa HBA dapat menerima alamat 32-bit, terlepas dari apa yang sebenarnya dapat didukung oleh pengontrol. Jika ruang tambahan diperlukan dalam ekstensi LUN atau SRB untuk menangani alamat 64-bit, maka penyesuaian yang sesuai harus dilakukan pada nilai ini sebelum menggunakannya dengan rutinitas seperti StorPortGetUncachedExtension.

SrbExtensionSize

Ukuran dalam byte yang diperlukan oleh driver miniport untuk penyimpanan per permintaannya, jika ada, untuk menangani transfer data yang lebih besar dari 64K. Storport menginisialisasi anggota ini ke nilai dalam anggota struktur HW_INITIALIZATION_DATA yang sama yang dikirim dalam rutinitas StorPortInitialize .

Atur anggota ini sebelum memanggil StorPortGetUncachedExtension untuk mengubah ukuran penyimpanan per permintaan berdasarkan NumberOfPhysicalBreaks. Atur anggota ini ke nol jika driver miniport tidak mempertahankan informasi per-SRB yang memerlukan penyimpanan. Nilai ini didasarkan pada asumsi bahwa HBA dapat menerima alamat 32-bit, terlepas dari apa yang sebenarnya dapat didukung oleh pengontrol. Jika ruang tambahan diperlukan dalam ekstensi LUN atau SRB untuk menangani alamat 64-bit, maka penyesuaian yang sesuai harus dilakukan pada nilai ini sebelum menggunakannya dengan rutinitas seperti ScsiPortGetUncachedExtension.

Dma64BitAddresses

Jika perangkat keras perangkat hanya mendukung alamat 32 bit, maka Dma64BitAddresses harus diatur ke 0. Jika perangkat mendukung alamat 64 bit, bidang ini menunjukkan apakah HBA dapat mengakses alamat yang lebih besar dari 4 GB.

Adaptor Storport diperlukan untuk mendukung DMA lebar bus. Oleh karena itu, pada mesin 64-bit atau PAE, Storport menginisialisasi Dma64BitAddresses untuk SCSI_DMA64_SYSTEM_SUPPORTED menunjukkan bahwa adaptor dapat mengakses berbagai alamat. Ketika driver miniport mendeteksi nilai ini, mereka harus mengembalikan salah satu nilai dalam tabel berikut dalam anggota yang sama untuk menunjukkan kepada driver port bahwa driver miniport mendukung DMA 64-bit. Jika miniport gagal melakukan ini, itu mungkin sangat menurunkan performa adaptor.

Nilai Makna
SCSI_DMA64_MINIPORT_SUPPORTED Driver miniport mendukung alamat fisik 64-bit untuk transfer I/O.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED Driver miniport mendukung alamat 64-bit penuh. Ini menunjukkan bahwa permintaan I/O mungkin memiliki alamat > fisik 4GB. Ekstensi yang tidak di-cache, SenseInfo, dan Ekstensi Srb mungkin ada di atas 4GB. Alokasi dibatasi hingga penyelarasan batas 4GB untuk mencegahnya melewati batas 4GB.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED Driver miniport mendukung alamat 64-bit penuh. Ini menunjukkan bahwa permintaan I/O mungkin memiliki alamat > fisik 4GB. Ekstensi yang tidak di-cache, SenseInfo, dan Ekstensi Srb mungkin ada di atas 4GB. Alokasi tidak memiliki persyaratan perataan batas.
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED Driver miniport mendukung alamat 64-bit dalam satu wilayah 4GB. Ini menunjukkan bahwa permintaan I/O, ekstensi yang tidak di-cache, SenseInfo, dan Ekstensi Srb mungkin memiliki alamat > fisik 4GB dalam satu wilayah 4GB.

ResetTargetSupported

Kedaluwarsa. Jangan gunakan anggota ini.

MaximumNumberOfLogicalUnits

Jumlah maksimum unit logis per target yang dapat dikontrol HBA. Secara default, nilai anggota ini SCSI_MAXIMUM_LOGICAL_UNITS. Driver miniport dapat mengatur ulang anggota ini ke nilai yang lebih rendah jika HBA memiliki kemampuan yang lebih terbatas atau ke nilai yang lebih besar, menunjukkan bahwa HBA memiliki kemampuan yang diperluas. Nilai maksimum untuk anggota ini adalah SCSI_MAXIMUM_LUNS_PER_TARGET.

WmiDataProvider

Ketika TRUE, driver miniport merespons permintaan Windows Management Instrumentation (WMI). Storport menginisialisasi anggota ini ke TRUE karena driver miniport-nya harus mendukung WMI. Selain itu, driver miniport untuk adaptor saluran fiber diharapkan mendukung SAN Management HBA API melalui WMI, dan driver miniport untuk adaptor RAID berbasis host diperlukan untuk mendukung RAID Management Interface.

Driver miniport tidak boleh mengubah nilai ini.

SynchronizationModel

Model sinkronisasi I/O yang didukung driver miniport. Kemungkinan nilainya adalah sebagai berikut:

Nilai Makna
StorSynchronizeFullDuplex Miniport mendukung mode dupleks penuh.
StorSynchronizeHalfDuplex Miniport mendukung mode setengah dupleks.

HwMSInterruptRoutine

Arahkan ke rutinitas HwMSInterruptRoutine driver miniport, yang diperlukan untuk setiap driver miniport HBA yang menghasilkan gangguan sinyal pesan (MSI). Driver miniport mengatur anggota ini ke NULL jika HBA tidak menghasilkan MSI.

InterruptSynchronizationMode

Nilai INTERRUPT_SYNCHRONIZATION_MODE yang menentukan mode sinkronisasi interupsi. Mode sinkronisasi interupsi menentukan bagaimana driver port menyinkronkan interupsi sinyal pesan.

DumpRegion

Struktur MEMORY_REGION yang menggambarkan wilayah memori yang berdekatan secara fisik yang dapat digunakan driver miniport selama crash dump atau hibernasi.

RequestedDumpBufferSize

Ukuran dalam byte ekstensi yang tidak di-cache yang akan dialokasikan untuk digunakan selama pencadangan/hibernasi.

VirtualDevice

Ketika TRUE, tidak ada perangkat keras nyata di belakang perangkat ini (misalnya, tidak ada objek DMA, gangguan, port I/O). Storport bereaksi berbeda dalam beberapa keadaan ketika mendukung miniport "virtual" alih-alih miniport yang mengontrol perangkat keras nyata.

DumpMode

Menunjukkan penggunaan miniport selama mode dump. Ini bisa memiliki salah satu nilai berikut.

Nilai Makna
DUMP_MODE_CRASH Miniport dalam mode dump digunakan untuk crashdump.
DUMP_MODE_HIBER Miniport dalam mode dump digunakan untuk hibernasi.
DUMP_MODE_MARK_MEMORY Miniport dalam mode dump digunakan untuk menandai memori yang diperlukan.
DUMP_MODE_RESUME Miniport dalam mode dump digunakan untuk resume dari hibernasi.

DmaAddressWidth

Lebar alamat DMA adaptor. Miniport harus menentukan STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED di FeatureSupport saat memberikan nilai ini. Nilai yang ditentukan harus (0 <DmaAddressWidth<= 64). Bidang ini dapat digunakan mulai dari Windows 10, versi 2004.

ExtendedFlags1

Dicadangkan untuk penggunaan sistem.

MaxNumberOfIO

Jumlah maksimum operasi I/O terutang yang didukung oleh HBA. Default diatur ke 1000 oleh Storport. Jika HBA tidak mendukung 1000 operasi I/O yang luar biasa, miniport harus menyesuaikan ini dengan nilai yang lebih kecil yang sesuai.

Jika HBA dapat mendukung lebih dari 1000 operasi I/O yang luar biasa, miniport dapat meningkatkan anggota ini ke nilai apa pun yang didukung oleh perangkat keras adaptor. Untuk mengizinkan lebih dari 1000 operasi I/O yang luar biasa, HBA harus mendukung salah satu metode alamat DMA 64-bit berikut, yang diatur di bidang Dma64BitAddresses :

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

Jumlah maksimum permintaan I/O yang didukung pada LUN. Storport akan mengatur ini ke nilai default 255. Jika LUN tidak mendukung 255 permintaan I/O yang luar biasa, miniport harus menyesuaikan anggota ini dengan nilai yang lebih kecil yang sesuai. Anggota ini harus <= MaxNumberOfIO. Untuk mendukung MaxIOsPerLun> 255, bidang SrbType harus diatur ke SRB_TYPE_STORAGE_REQUEST_BLOCK. Tersedia mulai dari Windows 8.

InitialLunQueueDepth

Kedalaman antrean I/O LUN awal. Storport mengatur ini ke nilai default 20 untuk miniport fisik dan ke 250 untuk miniport virtual. Anggota ini menyesuaikan kedalaman antrean awal untuk semua LUN pada adaptor. Kedalaman antrean untuk LUN individu diatur dengan memanggil StorPortSetDeviceQueueDepth. Anggota ini biasanya diatur ke nilai yang sama dengan MaxIOsPerLun. Tersedia mulai dari Windows 8.

BusResetHoldTime

Jumlah waktu, dalam mikrodetik, untuk menjeda adaptor setelah reset terdeteksi. Atur nilai ini ke 0 jika tidak ada waktu tunggu yang diperlukan setelah reset bus. Tersedia mulai dari Windows 8.

FeatureSupport

Fitur Storport yang diminta untuk adaptor. Tersedia mulai dari Windows 8. Driver miniport dapat mengatur anggota ini menjadi masker bitwise dari salah satu nilai berikut:

Nilai Makna
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 Driver miniport mendukung telemetri perangkat penyimpanan.
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 Permintaan miniport untuk menerima perintah STOP_UNIT selama pematian sistem.
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 Driver miniport ingin UncachedExtension dialokasikan dari node ADAPTER NUMA.
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 Driver miniport lebih suka menggunakan API kernel DMA V3 untuk adaptor.
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 Driver miniport mendukung kemampuan untuk membatalkan perintah yang luar biasa melalui SRB_FUNCTION_ABORT_COMMAND.
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 Adaptor mendukung informasi ambang suhu yang lebih kaya daripada yang ditentukan dalam spesifikasi SCSI SPC4.
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 Driver miniport menentukan lebar alamat DMA di DmaAddressWidth untuk adaptor. Nilai ini dapat digunakan mulai dari Windows 10, versi 2004.

Keterangan

Driver Storport mengalokasikan dan menginisialisasi struktur ini, memasok informasi konfigurasi khusus HBA sebanyak mungkin, dan meneruskan struktur ke rutinitas HwStorFindAdapter driver miniport. Storport tidak mendukung perangkat non-PnP, sehingga HwStorFindAdapter tidak mencari adaptor. Fungsi utamanya adalah menginisialisasi PORT_CONFIGURATION_INFORMATION.

Persyaratan

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

Lihat juga

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth