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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk