PORT_CONFIGURATION_INFORMATION struttura (storport.h)

PORT_CONFIGURATION_INFORMATION contiene informazioni di configurazione per una scheda del bus host (HBA).

Sintassi

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;

Members

Length

Dimensioni, in byte, della struttura PORT_CONFIGURATION_INFORMATION . Inizializzato dal driver Storport, questo membro funge anche da versione della struttura.

SystemIoBusNumber

Numero assegnato dal sistema del bus di I/O a cui è connesso l'HBA. I driver miniport non devono modificare questo membro. Il valore viene assegnato dal sistema perché la piattaforma potrebbe avere diversi bus di I/O dell'AdapterInterfaceType specificato.

AdapterInterfaceType

Interfaccia del bus di I/O. Storport inizializza questo membro al valore specificato dal driver miniport nella struttura HW_INITIALIZATION_DATA . I driver miniport non devono modificare questo membro.

BusInterruptLevel

Livello di richiesta di interruzione relativo al bus. Storport non presuppone l'utilizzo dell'interruzione della HBA, quindi il valore predefinito è zero. Storport inizializza questo membro e i driver miniport non devono modificarli.

BusInterruptVector

Vettore relativo al bus restituito dall'HBA. Storport non presuppone l'utilizzo dell'interruzione della HBA, quindi il valore predefinito è zero. Questo membro è irrilevante per i driver che configurano il membro BusInterruptLevel per i propri HBA. È pertinente per i tipi di autobus di I/O che usano vettori di interruzione, ad esempio PCIBus. Storport inizializza questo membro e i driver miniport non devono modificarli.

InterruptMode

Specifica se l'HBA usa gli interruzioni LevelSensitive o Latched (talvolta denominati "edge-triggered"). Storport inizializza questo membro in un valore appropriato per il bus e il dispositivo, ad esempio LevelSensitive per PCIBus. Storport inizializza questo membro e i driver miniport non devono modificarli.

MaximumTransferLength

Numero massimo di byte che l'HBA può trasferire in una singola operazione di trasferimento. Per impostazione predefinita, il valore di questo membro è SP_UNINITIALIZED_VALUE, che indica una dimensione massima di trasferimento illimitata. Se il suo HBA ha un supporto di trasferimento più limitato, un driver miniport deve reimpostare questo membro in base alla capacità di trasferimento di HBA. Se la routine HwStorInterrupt di un driver miniport non può disabilitare gli interruzioni nell'HBA, questo membro può essere modificato durante lo sviluppo del driver per garantire che il tempo trascorso nel driver ISR del miniport non degradi le prestazioni complessive del sistema.

NumberOfPhysicalBreaks

Numero massimo di pagine fisiche che l'adattatore di archiviazione può gestire in un singolo trasferimento (in altre parole, l'estensione del supporto di dispersione/raccolta). Per impostazione predefinita, il valore di questo membro è 0x11. Il driver miniport deve reimpostare questo membro in base alla funzionalità dell'adattatore di archiviazione.

DmaChannel

Canale DMA usato da un HBA subordinato. Per impostazione predefinita, il valore di questo membro è SP_UNINITIALIZED_VALUE. Storport inizializza questo membro e i driver miniport non devono modificarli.

DmaPort

Porta DMA usata da un HBA subordinato. Per impostazione predefinita, il valore di questo membro è SP_UNINITIALIZED_VALUE. Storport inizializza questo membro e i driver miniport non devono modificarli.

DmaWidth

Larghezza dei trasferimenti DMA se l'HBA usa DMA. Per impostazione predefinita, il valore di questo membro è zero. Storport inizializza questo membro e i driver miniport non devono modificarli.

DmaSpeed

Velocità di trasferimento dei dati DMA per Eisa HBAs. Storport inizializza questo membro e i driver miniport non devono modificarli.

AlignmentMask

Maschera che indica le restrizioni di allineamento per i buffer richiesti dall'HBA per le operazioni di trasferimento. Alcuni valori di maschera validi sono 0 (allineati a byte), 1 (parola allineata), 3 (DWORD allineato) e 7 (doppia DWORD allineata). Il driver miniport deve impostare questa maschera se l'HBA supporta la dispersione/raccolta. I valori di maschera di allineamento consentiti seguenti sono definiti in wdm.h:

Valore Significato
FILE_BYTE_ALIGNMENT (0x00000000) I dati sono allineati a byte (nessun requisito di allineamento per il dispositivo)
FILE_WORD_ALIGNMENT (0x00000001) I dati devono essere allineati a un limite di 2 byte.
FILE_LONG_ALIGNMENT (0x00000003) I dati devono essere allineati a un limite di 4 byte.
FILE_QUAD_ALIGNMENT (0x00000007) I dati devono essere allineati a un limite di 8 byte.
FILE_OCTA_ALIGNMENT (0x0000000f) I dati devono essere allineati a un limite di 16 byte.
FILE_32_BYTE_ALIGNMENT (0x0000001f) I dati devono essere allineati a un limite di 32 byte.
FILE_64_BYTE_ALIGNMENT (0x0000003f) I dati devono essere allineati a un limite di 64 byte.
FILE_128_BYTE_ALIGNMENT (0x0000007f) I dati devono essere allineati a un limite di 128 byte.
FILE_256_BYTE_ALIGNMENT (0x000000ff) I dati devono essere allineati a un limite di 256 byte.
FILE_512_BYTE_ALIGNMENT (0x000001ff) I dati devono essere allineati a un limite di 512 byte.

NumberOfAccessRanges

Specifica il numero di elementi AccessRanges nella matrice.

AccessRanges

Puntatore a una matrice di elementi di tipo ACCESS_RANGE. Storport alloca la memoria per gli intervalli di accesso e inizializza questo membro. I driver miniport non devono modificare questo membro.

MiniportDumpData

Puntatore a un contesto di dump usato durante un arresto anomalo o un'ibernazione.

Reserved

Riservato per l'uso del sistema (pre-Windows 8).

NumberOfBuses

Numero di autobus controllati dall'adattatore. Per impostazione predefinita, il valore di questo membro è zero. Questo membro ha un valore massimo di SCSI_MAXIMUM_BUSES_PER_ADAPTER. Questo membro è disponibile a partire da Windows 8.

InitiatorBusId[8]

ID del bus di iniziatore. Se l'input InitiatorBusId[0] ha il valore SP_UNINITIALIZED_VALUE, il driver miniport può assegnare un valore predefinito se il relativo HBA non richiede l'uso di valori specifici determinati eseguendo query sull'HBA. In caso contrario, il driver miniport deve usare qualsiasi valore diverso da zero assegnato dal driver della porta, se possibile. In genere, questo valore è associato al valore impostato per MaximumNumberOfTargets.

ScatterGather

Quando TRUE, l'HBA supporta la raccolta/dispersione. Storport inizializza questo membro su TRUE perché i driver miniport devono supportare la dispersione/raccolta. I driver miniport che funzionano con Storport non devono modificare questo valore. Nota: nelle versioni di Windows precedenti a Windows Server 2008 R2 e Windows 7, questo membro è impostato su FALSE. In questo caso, i driver miniport devono impostare questo membro su TRUE. L'impostazione di questo membro su TRUE causa l'avvio del dispositivo HBA.

Master

Quando TRUE, l'HBA è un bus master. Storport inizializza questo membro su TRUE perché i driver miniport devono supportare il mastering del bus DMA. I driver miniport che funzionano con Storport non devono modificare questo valore. Nota: nelle versioni di Windows precedenti a Windows Server 2008 R2 e Windows 7, questo membro è impostato su FALSE. In questo caso, i driver miniport devono impostare questo membro su TRUE. L'impostazione di questo membro su TRUE causa l'avvio del dispositivo HBA.

CachesData

Quando TRUE, l'HBA memorizza nella cache i dati o mantiene lo stato memorizzato nella cache nelle periferiche. Quando FALSE, l'HBA non memorizza nella cache i dati o mantiene lo stato memorizzato nella cache nelle periferiche. Per impostazione predefinita, il valore di questo membro è FALSE. Se questa operazione viene reimpostata su TRUE, Storport notifica al driver miniport quando si verificano determinati eventi di sistema, ad esempio gli scaricamenti della cache del file system.

AdapterScansDown

Storport ignora questo membro.

AtdiskPrimaryClaimed

Storport non usa questo membro e i relativi driver miniport non devono impostarlo.

AtdiskSecondaryClaimed

Storport non usa questo membro e i relativi driver miniport non devono impostarlo.

Dma32BitAddresses

Se TRUE, l'HBA ha 32 righe di indirizzi e può accedere alla memoria con indirizzi fisici maggiori di 0x00FFFFFF. Storport inizializza questo membro su TRUE, perché i relativi driver miniport devono supportare la larghezza del bus DMA. I driver Miniport non devono modificare questo valore perché si tratta dell'indirizzamento DMA predefinito se non è impostato un valore per Dma64BitAddresses . NOTA: se solo gli indirizzi a 32 bit sono supportati dall'hardware del dispositivo, Dma64BitAddresses deve essere impostato su 0.

DemandMode

Indica se il controller DMA di sistema deve essere programmato per la modalità richiesta anziché per le operazioni a ciclo singolo. Storport inizializza questo membro su FALSE, perché non supporta DMA in modalità subordinata. I driver Miniport non devono modificare questo valore.

MapBuffers

Indica se Storport esegue il mapping degli indirizzi del buffer dei dati SRB agli indirizzi virtuali di sistema. Il driver miniport imposta questo membro su uno dei valori seguenti per controllare il mapping per gli indirizzi del buffer di dati SRB.

Valore Significato
STOR_MAP_NO_BUFFERS Esegue il mapping del buffer solo per SRB_FUNCTION_IO_CONTROL e SRB_FUNCTION_WMI.
STOR_MAP_ALL_BUFFERS Obsoleta. Questo valore ha lo stesso effetto di STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Esegue il mapping del buffer per tutte le operazioni di I/O, ad eccezione delle richieste di lettura e scrittura.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Esegue il mapping del buffer per tutte le operazioni di I/O, incluse le richieste di lettura e scrittura. I miniport che supportano l'avvio devono gestire una richiesta di lettura o scrittura di PAGE_SIZE lunghezza. Queste richieste di lettura o scrittura devono essere sempre completate correttamente. Storport potrebbe non riuscire a eseguire il mapping del buffer in condizioni di memoria di sistema insufficiente. In questo caso, il membro DataBuffer in SRB sarà NULL.

NeedPhysicalAddresses

Se TRUE, il driver miniport deve convertire gli indirizzi virtuali in indirizzi fisici, come richiesto dall'HBA. Storport inizializza questo membro su TRUE, perché i relativi driver miniport devono supportare elenchi a dispersione/raccolta. Miniport non deve modificare questo valore.

TaggedQueuing

Se TRUE, l'HBA supporta l'accodamento di più richieste con tag SCSI. Storport inizializza questo membro su TRUE perché i driver miniport devono supportare l'accodamento con tag. I driver Miniport non devono modificare questo valore.

AutoRequestSense

Se TRUE, l'HBA supporta il rilevamento automatico della richiesta. Storport inizializza questo membro su TRUE perché i driver miniport devono supportare il senso della richiesta automatica. I driver Miniport non devono modificare questo valore.

MultipleRequestPerLu

Se TRUE, l'HBA supporta più richieste per unità logica. Storport inizializza questo membro su TRUE perché i driver miniport devono supportare più richieste inviate a un'unità logica al momento. I driver Miniport non devono modificare questo valore.

ReceiveEvent

Storport non usa questo membro e i relativi driver miniport non devono impostarlo.

RealModeInitialized

Storport non usa questo membro e i relativi driver miniport non devono impostarlo.

BufferAccessScsiPortControlled

Storport non usa questo membro e i relativi driver miniport non devono impostarlo.

MaximumNumberOfTargets

Numero di periferiche di destinazione che l'adattatore può controllare. Per impostazione predefinita, il valore di questo membro è SCSI_MAXIMUM_TARGETS_PER_BUS. Un driver miniport può reimpostare questo membro su un valore minore se l'HBA ha funzionalità più limitate o a un valore maggiore, a indicare che l'HBA ha funzionalità del bus estese. Il valore massimo per questo membro è 255.

SrbType

Tipo di SRB da inviare al driver miniport. Disponibile a partire da Windows 8. Questo valore è impostato su uno dei valori seguenti:

Valore Significato
SRB_TYPE_SCSI_REQUEST_BLOCK Il driver miniport riceve srb standard.
SRB_TYPE_STORAGE_REQUEST_BLOCK Il driver miniport riceve srb estesi.

AddressType

Tipo di indirizzo usato tra Storport e il driver miniport. Disponibile a partire da Windows 8. Questo valore può essere impostato sul valore seguente:

Valore Significato
STORAGE_ADDRESS_TYPE_BTL8 Indirizzamento a 8 bit (Bus, Target e LUN) a 8 bit.

ReservedUchars[2]

Riservato per l'uso del sistema (pre-Windows 8).

SlotNumber

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

BusInterruptLevel2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

BusInterruptVector2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

InterruptMode2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

DmaChannel2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

DmaPort2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

DmaWidth2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

DmaSpeed2

Riservato per l'uso da Parte di Storport. I driver Miniport non devono modificare questo membro.

DeviceExtensionSize

Dimensioni, in byte, richieste dal driver miniport per l'estensione del dispositivo per scheda. Un driver miniport usa l'estensione del dispositivo come risorsa di archiviazione per informazioni HBA determinate dal driver. Il driver di porta specifico del sistema operativo inizializza ogni estensione del dispositivo una volta, quando alloca per la prima volta l'estensione e la riempie con zeri. Passa un puntatore all'estensione del dispositivo specifica dell'HBA in ogni chiamata a un driver miniport. Le dimensioni specificate non includono alcun driver miniport richiesto per ogni spazio di archiviazione unità logica. Le dimensioni dell'archiviazione per unità logica vengono specificate tramite il campo SpecificLuExtensionSize , descritto più avanti in questo argomento.

Storport non segue il modello di SCSIPort (che inizializza nuovamente l'estensione del dispositivo ogni volta che la scheda viene arrestata e quindi le chiamate successive a HwScsiFindAdapter ricevono un'estensione del dispositivo zeroed-out). Storport reimposta invece l'estensione del dispositivo su zero solo quando viene allocata per la prima volta, quindi solo la prima chiamata a HwStorFindAdapter per una determinata scheda riceve un'estensione del dispositivo senza zero. Le chiamate successive a HwStorFindAdapter e altre funzioni miniport ricevono l'estensione del dispositivo come ultima modifica dal driver miniport. Ciò consente al driver miniport di mantenere la conoscenza dello stato dell'adattatore tra Plug and Play (PnP) arresta e riavvia, possibilmente abilitando il driver miniport per ottimizzare la procedura di inizializzazione.

SpecificLuExtensionSize

Dimensioni in byte richieste dal driver miniport per l'archiviazione per unità logica, se presente, per gestire i trasferimenti di dati superiori a 64 KB. Storport inizializza questo membro sul valore nello stesso membro della struttura HW_INITIALIZATION_DATA inviata nella routine StorPortInitialize .

Impostare questo membro su zero se il driver miniport non gestisce le informazioni per lu per cui richiede l'archiviazione. Questo valore si basa sul presupposto che l'HBA sia in grado di ricevere indirizzi a 32 bit, indipendentemente da ciò che il controller può effettivamente supportare. Se è necessario spazio aggiuntivo nelle estensioni LUN o SRB per gestire gli indirizzi a 64 bit, è necessario apportare modifiche appropriate a questo valore prima di usarlo con routine come StorPortGetUncachedExtension.

SrbExtensionSize

Dimensioni in byte richieste dal driver miniport per l'archiviazione per richiesta, se presente, per gestire i trasferimenti di dati superiori a 64 KB. Storport inizializza questo membro sul valore nello stesso membro della struttura HW_INITIALIZATION_DATA inviata nella routine StorPortInitialize .

Impostare questo membro prima di chiamare StorPortGetUncachedExtension per modificare le dimensioni dell'archiviazione per richiesta in base a NumberOfPhysicalBreaks. Impostare questo membro su zero se il driver miniport non gestisce le informazioni per SRB per cui richiede l'archiviazione. Questo valore si basa sul presupposto che l'HBA sia in grado di ricevere indirizzi a 32 bit, indipendentemente da ciò che il controller può effettivamente supportare. Se è necessario spazio aggiuntivo nelle estensioni LUN o SRB per gestire gli indirizzi a 64 bit, è necessario apportare modifiche appropriate a questo valore prima di usarlo con routine come ScsiPortGetUncachedExtension.

Dma64BitAddresses

Se l'hardware del dispositivo supporta solo indirizzi a 32 bit, Dma64BitAddresses deve essere impostato su 0. Se il dispositivo supporta indirizzi a 64 bit, questo campo indica se l'HBA è in grado di accedere agli indirizzi maggiori di 4 GB.

Gli adattatori Storport sono necessari per supportare DMA a larghezza bus. Pertanto, in un computer a 64 bit o PAE, Storport inizializza Dma64BitAddresses per SCSI_DMA64_SYSTEM_SUPPORTED che indica che l'adattatore può accedere all'intervallo completo di indirizzi. Quando i driver miniport rilevano questo valore, devono restituire uno dei valori nella tabella seguente nello stesso membro per indicare al driver di porta che il driver miniport supporta DMA a 64 bit. Se il miniport non riesce a eseguire questa operazione, potrebbe compromettere gravemente le prestazioni dell'adattatore.

Valore Significato
SCSI_DMA64_MINIPORT_SUPPORTED Il driver miniport supporta indirizzi fisici a 64 bit per i trasferimenti di I/O.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED Il driver miniport supporta l'indirizzamento a 64 bit completo. Ciò indica che le richieste di I/O possono avere indirizzi > fisici da 4 GB. L'estensione senza memorizzazione nella cache, SenseInfo e L'estensione Srb possono esistere sopra i 4 GB. Le allocazioni sono limitate all'allineamento dei limiti di 4 GB per impedire loro di superare un limite di 4 GB.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED Il driver miniport supporta l'indirizzamento a 64 bit completo. Ciò indica che le richieste di I/O possono avere indirizzi > fisici da 4 GB. L'estensione senza memorizzazione nella cache, SenseInfo e L'estensione Srb possono esistere sopra i 4 GB. Le allocazioni non hanno requisiti di allineamento dei limiti.
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED Il driver miniport supporta l'indirizzamento a 64 bit in una singola area da 4 GB. Ciò indica che le richieste di I/O, l'estensione senza memorizzazione nella cache, SenseInfo e L'estensione Srb possono avere indirizzi > fisici da 4 GB in una singola area da 4 GB.

ResetTargetSupported

Obsoleta. Non utilizzare questo membro.

MaximumNumberOfLogicalUnits

Numero massimo di unità logiche per destinazione che l'HBA può controllare. Per impostazione predefinita, il valore di questo membro è SCSI_MAXIMUM_LOGICAL_UNITS. Un driver miniport può reimpostare questo membro su un valore minore se l'HBA ha funzionalità più limitate o a un valore maggiore, a indicare che l'HBA ha funzionalità estese. Il valore massimo per questo membro è SCSI_MAXIMUM_LUNS_PER_TARGET.

WmiDataProvider

Se TRUE, il driver miniport risponde alle richieste di Strumentazione gestione Windows (WMI). Storport inizializza questo membro su TRUE perché i driver miniport devono supportare WMI. Inoltre, i driver miniport per le schede Fibre Channel dovrebbero supportare l'API HBA di gestione SAN tramite WMI e i driver miniport per le schede RAID basate su host sono necessari per supportare l'interfaccia di gestione RAID.

I driver Miniport non devono modificare questo valore.

SynchronizationModel

Modello di sincronizzazione di I/O supportato dal driver miniport. I possibili valori sono i seguenti:

Valore Significato
StorSynchronizeFullDuplex Il miniport supporta la modalità full-duplex.
StorSynchronizeHalfDuplex Il miniport supporta la modalità half duplex.

HwMSInterruptRoutine

Puntatore alla routine HwMSInterruptRoutine del driver miniport, necessaria per qualsiasi driver miniport di un HBA che genera interruzioni segnalate del messaggio .MSI. Un driver miniport imposta questo membro su NULL se l'HBA non genera msi.

InterruptSynchronizationMode

Valore INTERRUPT_SYNCHRONIZATION_MODE che specifica la modalità di sincronizzazione degli interrupt. La modalità di sincronizzazione degli interrupt determina il modo in cui il driver della porta sincronizza gli interrupt del messaggio segnalato.

DumpRegion

Struttura MEMORY_REGION che descrive un'area di memoria fisicamente contigua che i driver miniport possono usare durante un dump di arresto anomalo o un'ibernazione.

RequestedDumpBufferSize

Dimensioni in byte dell'estensione non memorizzata nella cache da allocare per l'uso durante il dump/ibernazione.

VirtualDevice

Se TRUE, non è presente alcun hardware reale dietro questo dispositivo (ad esempio, nessun oggetto DMA, interruzione, porte di I/O). Storport si comporta in modo diverso in alcune circostanze quando supporta un miniport "virtuale" anziché un miniport che controlla hardware reale.

DumpMode

Indica l'uso del miniport durante la modalità dump. Può avere uno dei valori seguenti.

Valore Significato
DUMP_MODE_CRASH Il miniport in modalità dump viene usato per un arresto anomalo del sistema.
DUMP_MODE_HIBER Il miniport in modalità dump viene usato per un'ibernazione.
DUMP_MODE_MARK_MEMORY Il miniport in modalità dump viene usato per contrassegnare la memoria necessaria.
DUMP_MODE_RESUME Il miniport in modalità dump viene usato per una ripresa dall'ibernazione.

DmaAddressWidth

Larghezza dell'indirizzo DMA di un adattatore. I miniport devono specificare STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED in FeatureSupport quando si specifica questo valore. Il valore specificato deve essere (0 <DmaAddressWidth<= 64). Questo campo può essere usato a partire da Windows 10 versione 2004.

ExtendedFlags1

Riservato per l'utilizzo nel sistema.

MaxNumberOfIO

Numero massimo di operazioni di I/O in sospeso supportate dall'HBA. Il valore predefinito è impostato su 1000 da Storport. Se l'HBA non supporta 1000 operazioni di I/O in sospeso, il miniport deve adattarlo a un valore inferiore appropriato.

Se l'HBA può supportare più di 1000 operazioni di I/O in sospeso, il miniport può aumentare questo membro a qualsiasi valore supportato dall'hardware dell'adattatore. Per consentire più di 1000 operazioni di I/O in sospeso, l'HBA deve supportare uno dei seguenti metodi di indirizzamento DMA a 64 bit, impostati nel campo Dma64BitAddresses :

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

Numero massimo di richieste di I/O supportate in un LUN. Storport imposterà questo valore su un valore predefinito pari a 255. Se un LUN non supporta 255 richieste di I/O in sospeso, il miniport deve modificare questo membro in base a un valore inferiore appropriato. Questo membro deve essere <= MaxNumberOfIO. Per supportare MaxIOsPerLun> 255, il campo SrbType deve essere impostato su SRB_TYPE_STORAGE_REQUEST_BLOCK. Disponibile a partire da Windows 8.

InitialLunQueueDepth

Profondità iniziale della coda di I/O LUN. Storport imposta questo valore su un valore predefinito di 20 per miniport fisici e su 250 per miniport virtuali. Questo membro regola la profondità iniziale della coda per tutti i LUN nell'adattatore. La profondità della coda per un singolo LUN viene impostata chiamando StorPortSetDeviceQueueDepth. Questo membro viene in genere impostato sullo stesso valore di MaxIOsPerLun. Disponibile a partire da Windows 8.

BusResetHoldTime

Quantità di tempo, in microsecondi, per sospendere l'adattatore dopo il rilevamento di una reimpostazione. Impostare questo valore su 0 se non è necessario alcun tempo di attesa dopo la reimpostazione del bus. Disponibile a partire da Windows 8.

FeatureSupport

Funzionalità storport richieste per l'adattatore. Disponibile a partire da Windows 8. Un driver miniport può impostare questo membro come maschera bit per bit di uno dei valori seguenti:

Valore Significato
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 Il driver miniport supporta la telemetria del dispositivo di archiviazione.
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 Il miniport richiede di ricevere il comando STOP_UNIT durante l'arresto del sistema.
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 Il driver miniport vuole allocare UncachedExtension dal nodo NUMA della scheda.
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 Il driver miniport preferisce usare l'API kernel DMA V3 per l'adapter.
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 Il driver miniport supporta la possibilità di interrompere un comando in sospeso tramite SRB_FUNCTION_ABORT_COMMAND.
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 L'adattatore supporta informazioni più avanzate sulla soglia della temperatura rispetto a quelle definite nella specifica SPC4 SCSI.
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 Il driver miniport ha specificato la larghezza dell'indirizzo DMA in DmaAddressWidth per l'adattatore. Questo valore può essere usato a partire da Windows 10 versione 2004.

Commenti

Il driver Storport alloca e inizializza questa struttura, fornisce tutte le informazioni di configurazione specifiche dell'HBA il più possibile e passa la struttura alla routine HwStorFindAdapter del driver miniport. Storport non supporta i dispositivi non PnP, quindi HwStorFindAdapter non cerca l'adattatore. La funzione principale consiste nell'inizializzare PORT_CONFIGURATION_INFORMATION.

Requisiti

Requisito Valore
Intestazione storport.h (include Srb.h, Storport.h, Strmini.h)

Vedi anche

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth