Bagikan melalui


struktur PORT_CONFIGURATION_INFORMATION (srb.h)

PORT_CONFIGURATION_INFORMATION (SCSI) berisi informasi konfigurasi untuk HBA. Driver port khusus OS mengalokasikan dan menginisialisasi struktur ini, memasok informasi konfigurasi khusus HBA sebanyak mungkin, dan meneruskan struktur ke rutinitas HwScsiFindAdapter driver miniport. Driver port mendapatkan beberapa informasi untuk struktur ini dari struktur HW_INITIALIZATION_DATA driver miniport. Rutinitas HwScsiFindAdapter driver miniport bertanggung jawab untuk menentukan apakah driver miniport dapat mendukung HBA dan, jika demikian, untuk mengisi informasi yang tersisa yang bersangkutan dalam struktur PORT_CONFIGURATION_INFORMATION.

Catatan

Driver port SCSI dan model driver miniport SCSI dapat diubah atau tidak tersedia di masa mendatang. Gunakan driver Storport dan model driver miniport Storport sebagai gantinya.

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           Reserved;
  UCHAR           NumberOfBuses;
  UCHAR           InitiatorBusId[8];
  BOOLEAN         ScatterGather;
  BOOLEAN         Master;
  BOOLEAN         CachesData;
  BOOLEAN         AdapterScansDown;
  BOOLEAN         AtdiskPrimaryClaimed;
  BOOLEAN         AtdiskSecondaryClaimed;
  BOOLEAN         Dma32BitAddresses;
  BOOLEAN         DemandMode;
  BOOLEAN         MapBuffers;
  BOOLEAN         NeedPhysicalAddresses;
  BOOLEAN         TaggedQueuing;
  BOOLEAN         AutoRequestSense;
  BOOLEAN         MultipleRequestPerLu;
  BOOLEAN         ReceiveEvent;
  BOOLEAN         RealModeInitialized;
  BOOLEAN         BufferAccessScsiPortControlled;
  UCHAR           MaximumNumberOfTargets;
  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;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Anggota

Length

Menentukan ukuran struktur ini dalam byte. Akibatnya, anggota ini, yang selalu diinisialisasi oleh driver port khusus OS, menunjukkan versi struktur ini yang digunakan oleh driver port.

SystemIoBusNumber

Menentukan nomor bus I/O yang ditetapkan sistem tempat HBA terhubung. Driver port khusus OS selalu menginisialisasi anggota ini. Nilainya ditetapkan sistem karena platform mungkin memiliki beberapa bus I/O dari AdapterInterfaceType yang diberikan.

AdapterInterfaceType

Mengidentifikasi antarmuka bus I/O. Driver port khusus OS selalu mengatur anggota ini ke nilai yang ditentukan oleh driver miniport dalam struktur HW_INITIALIZATION_DATA (SCSI).

BusInterruptLevel

Menentukan tingkat permintaan interupsi relatif bus. Driver port khusus OS tidak membuat asumsi tentang penggunaan interupsi HBA, sehingga nilai defaultnya adalah nol. Tergantung pada AdapterInterfaceType dan HBA yang diberikan, nilai yang ditetapkan untuk anggota ini dapat sesuai dengan IRQL untuk bus, seperti untuk bus jenis Isa dan MicroChannel . Driver HBA Eisa harus mengatur nilai ini ke IRQL relatif bus untuk HBA jika adaptor dikonfigurasi untuk gangguan sensitif tingkat.

BusInterruptVector

Menentukan vektor relatif bus yang dikembalikan oleh HBA. Driver port khusus OS 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.

InterruptMode

Menentukan apakah HBA menggunakan interupsi LevelSensitive atau Latched (terkadang disebut "edge-triggered"). Driver port khusus OS menginisialisasi anggota ini ke nilai yang sesuai untuk bus dan perangkat --misalnya, LevelSensitive untuk PCIBus. Driver Eisa HBA harus mengatur ulang nilai ini jika adaptor dikonfigurasi untuk gangguan sensitif tingkat, karena harus driver HBA pada bus I/O yang menggunakan gangguan sensitif tingkat, seperti bus jenis MicroChannel .

MaximumTransferLength

Menentukan 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 HwScsiInterrupt driver miniport tidak dapat menonaktifkan gangguan pada HBA, anggota ini dapat disesuaikan selama pengembangan driver untuk memastikan bahwa waktu yang dihabiskan di ISR driver miniport tidak menyebabkan mouse "melompat" atau throughput serial/paralel turun ke tingkat yang terlihat pengguna.

NumberOfPhysicalBreaks

Menentukan jumlah maksimum jeda antara rentang alamat yang dapat dimiliki buffer data jika HBA mendukung sebar/kumpulkan. Dengan kata lain, jumlah daftar sebar/kumpulkan dikurangi satu. Secara default, nilai anggota ini adalah SP_UNINITIALIZED_VALUE, yang menunjukkan HBA dapat mendukung jumlah diskontiguitas fisik yang tidak terbatas. Jika driver port menetapkan nilai untuk anggota ini, driver miniport dapat menyesuaikan nilai lebih rendah tetapi tidak lebih tinggi. Jika anggota ini SP_UNINITIALIZED_VALUE, driver miniport harus mengatur ulang anggota ini sesuai dengan kapasitas HBA yang tersebar/mengumpulkan, dengan nol tidak mewakili dukungan yang menyebar/mengumpulkan.

DmaChannel

Menentukan saluran DMA yang digunakan oleh HBA bawahan. Secara default, nilai anggota ini SP_UNINITIALIZED_VALUE. Jika HBA menggunakan pengontrol DMA sistem dan AdapterInterfaceType yang diberikan adalah nilai apa pun kecuali MicroChannel, driver miniport harus mengatur ulang anggota ini.

DmaPort

Menentukan port DMA yang digunakan oleh HBA subordinat. Secara default, nilai anggota ini SP_UNINITIALIZED_VALUE. Jika HBA menggunakan pengontrol DMA sistem dan AdapterInterfaceType yang diberikan adalah MicroChannel, driver miniport harus mengatur anggota ini.

DmaWidth

Menentukan lebar transfer DMA jika HBA menggunakan DMA. Secara default, nilai anggota ini adalah nol. Jika HBA-nya melakukan DMA, driver miniport harus mengatur ulang anggota ini ke salah satu hal berikut: Width8Bits, Width16Bits, atau Width32Bits.

DmaSpeed

Menentukan kecepatan transfer data DMA untuk Eisa HBA. Secara default, nilai anggota ini menentukan waktu kompatibilitas. Nilai yang dapat diterima untuk anggota ini adalah salah satu hal berikut: Kompatibel, TypeA, TypeB, atau TypeC.

AlignmentMask

Berisi masker yang menunjukkan pembatasan penyelarasan untuk buffer yang diperlukan oleh HBA untuk operasi transfer. Nilai masker yang valid juga dibatasi oleh karakteristik manajer memori pada versi Windows yang berbeda. Nilai masker yang diizinkan di bawah Windows 95 atau Windows 98 adalah 0 (byte meratakan), 1 (rata kata) atau 3 (DWORD diratakan). Di bawah Windows NT dan Windows 2000, nilai masker yang valid adalah 0 (byte diratakan), 1 (rata kata), 3 (DWORD diratakan) dan 7 (DWORD ganda diratakan). Driver miniport harus mengatur masker ini jika HBA mendukung sebar/berkumpul.

NumberOfAccessRanges

Menentukan jumlah elemen AccessRanges dalam array, yang dijelaskan berikutnya. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA ketika driver miniport yang disebut ScsiPortInitialize.

AccessRanges

Reserved

Dicadangkan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

NumberOfBuses

Menentukan jumlah bus SCSI yang dikendalikan oleh HBA. Secara default, nilai anggota ini adalah nol.

InitiatorBusId[8]

Menunjukkan ID bus inisiator. Jika input InitiatorBusId[0] memiliki nilai nol, 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. Setiap driver miniport harus memperbarui spesifikasi InitiatorBusId agar sesuai dengan apa yang digunakan HBA-nya, jika perlu mengkueri HBA untuk menentukan nilai yang sesuai.

Driver miniport harus menetapkan entri untuk setiap bus SCSI yang didukung oleh HBA, seperti yang ditunjukkan oleh nilai NumberOfBuses.

ScatterGather

Menunjukkan kapan TRUE bahwa HBA mendukung sebar/kumpulkan. Ketika FALSE , HBA tidak mendukung sebar/kumpulkan. Secara default, nilai anggota ini adalah FALSE.

Master

Menunjukkan kapan TRUE bahwa HBA adalah master bus. Ketika FALSE, HBA bukan master bus. Secara default, nilai anggota ini adalah FALSE.

CachesData

Menunjukkan kapan TRUE bahwa 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, driver port khusus OS memberi tahu driver miniport ketika peristiwa sistem tertentu terjadi, seperti flush cache sistem file dan pematian sistem. Misalnya, jika pengontrol di bus mencerminkan dua disk, driver miniport biasanya akan mengatur anggota ini ke TRUE.

AdapterScansDown

Menunjukkan kapan TRUE bahwa BIOS untuk pemindaian HBA untuk target bus SCSI dari tujuh hingga nol. Ketika FALSE, BIOS untuk HBA mencari target bus SCSI, dimulai dengan ID nol dan memindai ke atas ke (tetapi tidak termasuk) MaximumTargetIds. Secara default, nilai AdapterScansDown adalah FALSE.

AtdiskPrimaryClaimed

Menunjukkan ketika TRUE bahwa rentang alamat disk utama "AT" (kompatibel dengan WD1003), 0x1F0 ke 0x1FF, telah diklaim dalam registri oleh driver lain untuk perangkatnya. Driver port khusus OS selalu menginisialisasi anggota ini. Jika nilai input anggota ini TRUE, driver miniport harus berasumsi bahwa driver yang sudah dimuat telah mengklaim rentang perangkat. Jika nilai input FALSE, driver miniport dapat mengklaim rentang alamat untuk HBA yang meniru pengontrol disk "AT" dan mengatur ulang anggota ini ke TRUE, sehingga mencegah akses ke rentang ini oleh driver disk "AT" atau driver miniport yang kemudian dimuat.

AtdiskSecondaryClaimed

Menunjukkan kapan TRUE bahwa rentang alamat disk AT sekunder, 0x170 ke 0x17F telah diklaim dalam registri oleh driver lain untuk perangkatnya. Ketika FALSE rentang alamat disk AT sekunder belum diklaim dalam registri oleh driver lain. Driver port khusus OS selalu menginisialisasi anggota ini. Driver miniport harus memperlakukan anggota ini seperti untuk AtdiskPrimaryClaimed.

Dma32BitAddresses

Menunjukkan kapan TRUE bahwa HBA memiliki 32 baris alamat dan dapat mengakses memori dengan alamat fisik yang lebih besar dari 0x00FFFFFF. Ketika FALSE , HBA memiliki sejumlah baris alamat DMA selain 32. Secara default, nilai anggota ini adalah FALSE. Jika driver miniport menetapkan Dma64BitAddresses, anggota ini harus FALSE.

DemandMode

Menunjukkan kapan TRUE bahwa pengontrol DMA sistem harus diprogram untuk mode permintaan daripada operasi siklus tunggal. Jika HBA bukan perangkat subordinat, anggota ini harus FALSE.

MapBuffers

Menunjukkan kapan TRUE bahwa buffer data harus dipetakan ke rentang alamat virtual sistem. Ketika FALSE , buffer data tidak harus dipetakan ke alamat virtual sistem. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya. Jika FALSE, driver miniport tidak boleh mengakses Srb.DataBuffer secara langsung.

NeedPhysicalAddresses

Menunjukkan kapan TRUE bahwa driver miniport harus menerjemahkan alamat virtual ke alamat fisik, seperti yang diperlukan oleh HBA. Ketika FALSE, driver miniport tidak harus menerjemahkan alamat virtual ke alamat fisik. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya.

TaggedQueuing

Menunjukkan kapan TRUE bahwa HBA mendukung antrean beberapa permintaan dengan tag SCSI. Ketika FALSE, HBA tidak mendukung antrean bertag SCSI. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya.

AutoRequestSense

Menunjukkan kapan TRUE bahwa HBA mendukung pengertian permintaan otomatis. Ketika FALSE , HBA tidak mendukung pengertian permintaan otomatis. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya. Anggota ini harus diatur ke TRUE sebelum pengemudi HBA master bus memanggil ScsiPortGetUncachedExtension.

MultipleRequestPerLu

Menunjukkan kapan TRUE bahwa HBA mendukung beberapa permintaan per unit logis. Ketika FALSE , HBA tidak mendukung beberapa permintaan per unit logis. Mekanisme di mana adaptor menyimpan cache permintaan ditentukan adaptor. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya.

ReceiveEvent

Menunjukkan kapan TRUE bahwa HBA mendukung operasi penerimaan peristiwa SCSI. Ketika FALSE , HBA tidak mendukung operasi penerimaan peristiwa SCSI. Driver port khusus OS selalu mengatur anggota ini ke nilai yang diteruskan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize. Driver miniport dapat mengatur ulang nilai ini untuk HBA tertentu yang dikontrolnya.

RealModeInitialized

Menunjukkan kapan TRUE bahwa driver mode nyata (x86-only) telah menginisialisasi HBA. Ketika FALSE , HBA sebelumnya belum diinisialisasi oleh driver mode nyata. Driver port yang bergantung pada OS selalu menginisialisasi anggota ini. Jika ini diatur ke TRUE, driver miniport tidak boleh menginisialisasi HBA-nya jika urutan inisialisasi driver identik dengan inisialisasi HBA mode nyata; tidak menginisialisasi ulang HBA dalam keadaan ini membuat beban driver miniport jauh lebih cepat. Nilai anggota ini tidak relevan dengan driver miniport apa pun yang selalu menginisialisasi HBA-nya saat berjalan dalam mode terlindungi pada platform berbasis x86 dan untuk semua driver miniport yang tidak relevan apakah mereka berjalan pada platform berbasis CISC atau RISC.

BufferAccessScsiPortControlled

Menunjukkan kapan TRUE bahwa driver miniport selalu memanggil ScsiPortXxx untuk mengakses buffer data dan/atau informasi request-sense dalam SRB, sehingga memungkinkan driver port khusus OS untuk mengoptimalkan pemrosesan permintaan I/O. Ketika FALSE driver miniport tidak perlu memanggil rutinitas ScsiPortXxx untuk mengakses buffer data atau informasi request-sense. Mengatur anggota ini ke FALSE dapat menurunkan performa I/O HBA. Rutinitas panggilan selain ScsiPortXxx membuat driver miniport tidak dapat didukung di seluruh sistem operasi Microsoft.

MaximumNumberOfTargets

Menentukan jumlah periferal target yang dapat dikontrol HBA. Secara default, nilai anggota ini SCSI_MAXIMUM_TARGETS, sesuai dengan standar SCSI. 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 WIDE-SCSI atau Fibre Channel. Nilai ini terbatas pada SCSI_MAXIMUM_TARGETS_PER_BUS.

ReservedUchars[2]

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

SlotNumber

Menentukan nomor slot HBA dengan nilai yang cocok dengan VendorId dan DeviceId yang ditentukan dalam struktur HW_INITIALIZATION_DATA (SCSI) ketika driver miniport yang disebut ScsiPortInitialize.

BusInterruptLevel2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

BusInterruptVector2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

InterruptMode2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

DmaChannel2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

DmaPort2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

DmaWidth2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

DmaSpeed2

Disediakan untuk penggunaan sistem dan tidak tersedia untuk digunakan oleh driver miniport.

DeviceExtensionSize

Menentukan ukuran dalam byte yang diperlukan oleh driver miniport untuk ekstensi perangkat per-HBA-nya untuk menangani transfer data yang lebih besar dari 64K, yang mungkin memerlukan daftar sebar/kumpulkan yang lebih besar daripada ukuran yang ditentukan dalam registri untuk driver ini.

SpecificLuExtensionSize

Menentukan ukuran dalam byte yang diperlukan oleh driver miniport untuk penyimpanan per-logical-unit-storage, jika ada, untuk menangani transfer data yang lebih besar dari 64K. Biarkan anggota ini diatur 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 ScsiPortGetUncachedExtension.

SrbExtensionSize

Menentukan ukuran dalam byte yang diperlukan oleh driver miniport untuk penyimpanan per permintaannya, jika ada, untuk menangani transfer data yang lebih besar dari 64K. Atur anggota ini sebelum memanggil ScsiPortGetUncachedExtension untuk mengubah ukuran penyimpanan per permintaan berdasarkan NumberOfPhysicalBreaks. Biarkan anggota ini diatur 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

Menunjukkan bahwa HBA dapat mengakses alamat yang lebih besar dari 4 GB, atau 0x0FFFFFFFF jika Dma64BitAddresses berisi nilai SCSI_DMA64_MINIPORT_SUPPORTED. Sebelum Windows 2000, ScsiPort menetapkan nilai ini berdasarkan konten HW_INITIALIZATION_DATA (SCSI). Ini bukan lagi kasusnya. Di Windows 2000, nilai Dma64BitAddresses ditentukan oleh callback driver miniport HwScsiFindAdapter saja. Jika sistem operasi mendukung ruang alamat 64-bit, driver port meneruskan nilai SCSI_DMA64_SYSTEM_SUPPORTED ke driver miniport di anggota ini. Jika HBA yang dijelaskan oleh PORT_CONFIGURATION_INFORMATION juga mendukung ruang alamat yang lebih besar dari 32-bit maka driver port/miniport diperlukan untuk mendukung alamat 64-bit penuh, dan panggilan balik driver miniport HwScsiFindAdapter menunjukkan ini dengan menetapkan nilai SCSI_DMA64_MINIPORT_SUPPORTED ke Dma64BitAddresses, menulis atas nilai sebelumnya yang ditetapkan oleh driver port. Nilai yang benar harus ditetapkan ke anggota Dma64BitAddresses sebelum driver miniport memanggil ScsiPortGetUncachedExtension.

ResetTargetSupported

Kedaluwarsa. Driver ScsiPort tidak lagi mengirim permintaan SRB_FUNCTION_RESET_DEVICE ke driver miniport-nya. Jangan gunakan anggota ini.

MaximumNumberOfLogicalUnits

Menentukan jumlah maksimum unit logis per target yang dapat dikontrol HBA. Secara default, nilai anggota ini adalah 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 SCSI-3.

WmiDataProvider

Menunjukkan kapan TRUE bahwa driver miniport merespons permintaan Windows Management Instrumentation (WMI). Ketika FALSE driver miniport tidak merespons permintaan Windows Management Instrumentation (WMI). Secara default, nilai anggota ini adalah FALSE.

Keterangan

Anggota tertentu yang diinisialisasi tergantung pada driver miniport HBA dan pada informasi konfigurasi yang tersedia untuk driver port khusus OS. Driver port khusus OS menetapkan nilai default di semua anggota yang tidak dapat menyediakan informasi konfigurasi ke rutinitas HwScsiFindAdapter driver miniport.

Semua driver miniport HBA harus memiliki setidaknya satu set default untuk digunakan bagi anggota yang relevan jika driver port khusus OS tidak lulus dalam semua nilai yang diinisialisasi.

Rutinitas HwScsiFindAdapter harus memperbarui semua anggota yang relevan dengan HBA yang didukung driver.

Driver kelas penyimpanan Windows NT, yang memuat lebih lambat dari driver miniport, bergantung pada informasi yang disediakan oleh setiap driver miniport rutin HwScsiFindAdapter untuk mengatur permintaan I/O berikutnya. Misalnya, nilai MaximumTransferLength dan NumberOfPhysicalBreaks yang disediakan oleh setiap kontrol driver miniport apakah driver kelas harus membagi permintaan transfer besar menjadi satu set transfer parsial agar sesuai dengan batas HBA.

Anggota Dma64BitAddresses dari PORT_CONFIGURATION_INFORMATION tidak boleh lagi dianggap sebagai nilai BOOLEAN. Nilai SCSI_DMA64_SYSTEM_SUPPORTED menunjukkan bahwa driver port/miniport diperlukan untuk mendukung alamat 64-bit, tetapi rutinitas ScsiPortGetUncachedExtension masih menafsirkan nilai nonzero Dma64BitAddresses seperti yang menunjukkan bahwa dukungan 64-bit diperlukan. Ini berarti bahwa ScsiPortGetUncachedExtension masih berfungsi dengan baik ketika dipanggil oleh driver warisan yang menetapkan nilai BOOLEAN ke Dma64BitAddresses.

Selain Dma64BitAddresses, baik PORT_CONFIGURATION_INFORMATION maupun HW_INITIALIZATION_DATA memiliki sepasang anggota yang disebut SpecificLuExtensionSize dan SrbExtensionSize yang nilainya sekarang harus ditangani secara berbeda. Driver miniport harus menghitung nilai awal SpecificLuExtensionSize dan SrbExtensionSize dalam HW_INITIALIZATION_DATA berdasarkan asumsi bahwa HBA mampu menerima alamat 32-bit, terlepas dari apa yang sebenarnya dapat didukung oleh pengontrol. Nilai default untuk SpecificLuExtensionSize dan SrbExtensionSize di PORT_CONFIGURATION_INFORMATION juga akan didasarkan pada asumsi alamat 32-bit, karena nilai dalam PORT_CONFIGURATION_INFORMATION berasal dari nilai dalam HW_INITIALIZATION_DATA.

Ini berarti bahwa jika driver miniport membutuhkan ruang tambahan baik di ekstensi LUN atau ekstensi SRB untuk menangani alamat fisik 64 bit, ia harus memodifikasi nilai untuk SpecificLuExtensionSize dan SrbExtensionSize di PORT_CONFIGURATION_INFORMATION untuk memperhitungkan hal ini sebelum meneruskan PORT_CONFIGURATION_INFORMATION ke ScsiPortGetUncachedExtension.

Persyaratan

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

Lihat juga

ACCESS_RANGE

HW_INITIALIZATION_DATA (SCSI)

HwScsiFindAdapter

ScsiPortGetDeviceBase

ScsiPortGetUncachedExtension

ScsiPortInitialize

ScsiPortValidateRange