STORAGE_REQUEST_BLOCK struttura (minitape.h)
La STORAGE_REQUEST_BLOCK è la struttura SRB (Extended Format Request Block). La struttura fornisce l'aggiunta di dati estesi associati a una funzione SRB.
Nota
I modelli di driver di porta SCSI e miniport SCSI possono essere modificati o non disponibili in futuro. È invece consigliabile usare i modelli di driver Storport e Miniport Storport.
Sintassi
typedef struct _STORAGE_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
ULONG ReservedUlong1;
ULONG Signature;
ULONG Version;
ULONG SrbLength;
ULONG SrbFunction;
ULONG SrbFlags;
ULONG ReservedUlong2;
ULONG RequestTag;
USHORT RequestPriority;
USHORT RequestAttribute;
ULONG TimeOutValue;
union {
ULONG SystemStatus;
ULONG RequestTagHigh4Bytes;
} DUMMYUNIONNAME;
ULONG SystemStatus;
ULONG ZeroGuard1;
ULONG AddressOffset;
ULONG NumSrbExData;
ULONG DataTransferLength;
PVOID POINTER_ALIGN DataBuffer;
PVOID POINTER_ALIGN ZeroGuard2;
PVOID POINTER_ALIGN OriginalRequest;
PVOID POINTER_ALIGN ClassContext;
PVOID POINTER_ALIGN PortContext;
PVOID POINTER_ALIGN MiniportContext;
_STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
struct _STORAGE_REQUEST_BLOCK;
ULONG SrbExDataOffset[ANYSIZE_ARRAY];
} STORAGE_REQUEST_BLOCK, *PSTORAGE_REQUEST_BLOCK;
Members
Length
Specifica le dimensioni dell'intestazione SRB per la compatibilità con la struttura SCSI_REQUEST_BLOCK . Questo valore è uguale all'offset del membro Signature di questa struttura.
Function
Impostare su SRB_FUNCTION_STORAGE_REQUEST_BLOCK per indicare che si tratta di una SRB estesa. A differenza di SCSI_REQUEST_BLOCK, l'identificatore della funzione SRB è invece nel membro SrbFunction .
SrbStatus
Restituisce lo stato della richiesta completata. Questo membro deve essere impostato dal driver miniport prima di notificare al driver specifico del sistema operativo che la richiesta è stata completata chiamando StorPortNotification con RequestComplete. SrbStatus può essere uno dei valori seguenti.
Valore | Significato |
---|---|
SRB_STATUS_PENDING | Indica che la richiesta è in corso. Il driver di porta specifico del sistema operativo inizializza SrbStatus a questo valore. |
SRB_STATUS_SUCCESS | Indica che la richiesta è stata completata correttamente. |
SRB_STATUS_ABORTED | Indica che la richiesta è stata interrotta come diretto dal driver della porta. Un driver miniport imposta questo stato nel membro NextSrb per una richiesta di SRB_FUNCTION_ABORT_COMMAND riuscita. |
SRB_STATUS_ABORT_FAILED | Indica un tentativo di interruzione della richiesta non riuscita. Restituisce questo stato per una richiesta di SRB_FUNCTION_ABORT_COMMAND quando non è possibile trovare la richiesta specificata. |
SRB_STATUS_ERROR | Indica che la richiesta è stata completata con un errore nello stato del bus SCSI. |
SRB_STATUS_BUSY | Indica che il driver miniport o il dispositivo di destinazione non è stato possibile accettare la richiesta in questo momento. Il driver di porta specifico del sistema operativo invia nuovamente la richiesta in un secondo momento. |
SRB_STATUS_INTERNAL_ERROR | Indica che il driver Storport non è riuscito a recapitare la richiesta al driver miniport o al dispositivo di destinazione. In questi casi lo stato viene registrato in InternalStatus. |
SRB_STATUS_INVALID_REQUEST | Indica che il driver miniport non supporta la richiesta specificata. |
SRB_STATUS_NO_DEVICE | Indica che il dispositivo non ha risposto. |
SRB_STATUS_TIMEOUT | Indica il timeout della richiesta. |
SRB_STATUS_SELECTION_TIMEOUT | Indica il timeout della selezione del dispositivo SCSI. |
SRB_STATUS_COMMAND_TIMEOUT | Indica che la destinazione non ha completato il comando entro il limite di tempo. |
SRB_STATUS_MESSAGE_REJECTED | Indica la destinazione rifiutata da un messaggio. In genere viene restituito solo per le richieste di tipo messaggio come SRB_FUNCTION_TERMINATE_IO. |
SRB_STATUS_BUS_RESET | Indica che si è verificato un ripristino del bus durante l'esecuzione di questa richiesta. |
SRB_STATUS_PARITY_ERROR | Indica che si è verificato un errore di parità sul bus SCSI e che un nuovo tentativo non è riuscito. |
SRB_STATUS_REQUEST_SENSE_FAILED | Indica che il comando request-sense non è riuscito. Viene restituito solo se l'adattatore del bus host (HBA) esegue il senso della richiesta automatica e il driver miniport imposta AutoRequestSense su TRUE nella PORT_CONFIGURATION_INFORMATION per questo HBA. |
SRB_STATUS_NO_HBA | Indica che l'HBA non risponde. |
SRB_STATUS_DATA_OVERRUN | Indica che si è verificato un errore di overrun o in esecuzione dei dati. Il driver miniport deve anche aggiornare il membro DataTransferLength di SRB per indicare la quantità di dati effettivamente trasferiti se si verifica un'esecuzione. |
SRB_STATUS_UNEXPECTED_BUS_FREE | Indica la destinazione disconnessa in modo imprevisto. |
SRB_STATUS_PHASE_SEQUENCE_FAILURE | Indica che l'HBA ha rilevato un errore di sequenza di fasi illegale. |
SRB_STATUS_REQUEST_FLUSHED | Indica che la richiesta di stato è stata arrestata. |
SRB_STATUS_BAD_FUNCTION | Indica che il codice della funzione SRB non è supportato. |
SRB_STATUS_INVALID_PATH_ID | Indica che il PathId specificato in SRB non esiste. |
SRB_STATUS_INVALID_TARGET_ID | Indica che il valore TargetID in SRB non è valido. |
SRB_STATUS_INVALID_LUN | Indica che il valore Lun in SRB non è valido. |
SRB_STATUS_ERROR_RECOVERY | Indica che la richiesta è stata completata con un errore nello stato del bus SCSI e che il messaggio SCSI INITIATE RECOVERY è stato ricevuto. |
SRB_STATUS_AUTOSENSE_VALID | Indica che le informazioni restituite in SenseInfoBuffer sono valide. |
SRB_STATUS_QUEUE_FROZEN | Un driver miniport non deve mai impostare il membro SrbStatus su questo valore. Il driver della porta Windows può impostare questo valore per informare un driver della classe di archiviazione che la coda di richieste per una determinata periferica è stata bloccata. |
SRB_STATUS_NOT_POWERED | Indica che la richiesta non è riuscita perché la destinazione non è supportata. Per le richieste con SRB_FLAGS_NO_KEEP_AWAKE impostate in SrbFlags, le richieste inviate a LUN che vengono disattivate avranno esito negativo con questo stato. |
SRB_STATUS_LINK_DOWN | Indica che la richiesta non è riuscita perché il collegamento è inattivo. |
SRB_STATUS_BAD_SRB_BLOCK_LENGTH | Indica che la richiesta non è riuscita perché la lunghezza SRB non è valida. |
ReservedUlong1
Riservato. Impostare su 0.
Signature
Firma del formato SRB esteso. Questa opzione è impostata su SRB_SIGNATURE.
Version
Versione della struttura usata. La versione corrente è STORAGE_REQUEST_BLOCK_VERSION_1.
SrbLength
Lunghezza di questa SRB estesa, in byte, inclusa questa struttura, indirizzo e qualsiasi dati esteso SRB.
SrbFunction
Specifica l'operazione da eseguire, che può essere uno di questi valori:
Valore | Significato |
---|---|
SRB_FUNCTION_EXECUTE_SCSI (0x00) | Una richiesta di I/O del dispositivo SCSI deve essere eseguita nell'unità logica di destinazione. Quando NumSrbExData> 0, una o più strutture di blocchi di richiesta estese seguenti si trovano negli offset specificati in SrbExDataOffset: SRBEX_DATA_SCSI_CDB16,SRBEX_DATA_SCSI_CDB32, SRBEX_DATA_SCSI_CDB_VAR, SRBEX_DATA_BIDIRECTIONAL,SRBEX_DATA_IO_INFO |
SRB_FUNCTION_ABORT_COMMAND (0x10) | Un messaggio SCSIMESS_ABORT deve essere inviato per annullare la richiesta a cui fa riferimento il membro NextSrb . Se si tratta di una richiesta di coda contrassegnata, è consigliabile usare un messaggio SCSIMESS_ABORT_WITH_TAG. Se la richiesta indicata è stata completata, questa richiesta deve essere completata normalmente. I dati SRB estesi non sono necessari per questa funzione. NOTA: questa funzione non viene inviata al miniport di Storport. |
SRB_FUNCTION_RESET_DEVICE (0x16) | Il controller di destinazione SCSI deve essere reimpostato usando il messaggio di SCSIMESS_BUS_DEVICE_RESET. Il driver miniport deve completare tutte le richieste attive per il controller di destinazione. I dati SRB estesi non sono necessari per questa funzione. |
SRB_FUNCTION_RESET_LOGICAL_UNIT (0x20) | Se possibile, l'unità logica deve essere reimpostata. Il driver miniport HBA deve completare tutte le richieste attive per l'unità logica. I dati SRB estesi non sono necessari per questa funzione. Storport supporta questo tipo di reimpostazione, ma la porta SCSI non è disponibile. |
SRB_FUNCTION_RESET_BUS (0x12) | Il bus SCSI deve essere reimpostato usando il messaggio SCSIMESS_BUS_DEVICE_RESET. Un driver miniport riceve questa richiesta solo se una determinata richiesta ha timeout e una richiesta successiva per interrompere la richiesta di timeout ha anche timeout. I dati SRB estesi non sono necessari per questa funzione. |
SRB_FUNCTION_TERMINATE_IO (0x14) | Un messaggio SCSIMESS_TERMINATE_IO_PROCESS deve essere inviato per annullare la richiesta puntata dal membro NextSrb . Se la richiesta indicata è già stata completata, questa richiesta deve essere completata normalmente. I dati SRB estesi non sono necessari per questa funzione. NOTA: questa funzione non viene inviata al miniport di Storport. |
SRB_FUNCTION_RELEASE_RECOVERY (0x11) | Un messaggio SCSIMESS_RELEASE_RECOVERY deve essere inviato al controller di destinazione. I dati SRB estesi non sono necessari per questa funzione. NOTA: questa funzione non viene inviata al miniport di Storport. |
SRB_FUNCTION_RECEIVE_EVENT (0x03) | L'HBA deve essere preparato per ricevere una notifica di evento asincrona dalla destinazione indirizzata. Il membro SRB DataBuffer indica dove inserire i dati. NOTA: questa funzione non viene inviata al miniport di Storport. |
SRB_FUNCTION_SHUTDOWN (0x07) | Il sistema viene arrestato. Un driver miniport può ricevere diverse di queste notifiche prima che tutte le attività di sistema vengano effettivamente arrestate. Tuttavia, l'ultima notifica di arresto verrà eseguita dopo l'ultimo avvio di I/O. I dati SRB estesi non sono necessari per questa funzione. |
SRB_FUNCTION_FLUSH (0x08) | Il driver miniport deve scaricare tutti i dati memorizzati nella cache per il dispositivo di destinazione. Questa richiesta viene inviata al driver miniport solo se imposta CachesData su TRUE nella PORT_CONFIGURATION_INFORMATION per l'HBA. I dati SRB estesi non sono necessari per questa funzione. |
SRB_FUNCTION_IO_CONTROL (0x02) | La richiesta è una richiesta di controllo I/O, che ha origine in un'applicazione in modalità utente con un hbA dedicato. SRB DataBuffer punta a un'intestazione di SRB_IO_CONTROL seguita dall'area dati. Il valore in DataBuffer può essere usato dal driver, indipendentemente dal valore di MapBuffers. Solo i membri SRB Function, SrbFlags, TimeOutValue, DataBuffer e DataTransferLength sono validi, insieme al membro SrbExtension se il driver miniport richiedeva estensioni SRB durante l'inizializzazione. Se un driver miniport controlla un'HBA dedicata all'applicazione in modo che supporti questa richiesta, il driver miniport deve eseguire la richiesta e notificare il driver di porta specifico del sistema operativo al termine della SRB, usando il normale meccanismo di chiamate a StorPortNotification con RequestComplete e NextRequest. |
SRB_FUNCTION_LOCK_QUEUE (0x18) | Contiene richieste accodate dal driver di porta per una determinata unità logica, in genere mentre viene elaborata una richiesta di alimentazione. Sono validi solo i membri SRB Length,Function, SrbFlags e OriginalRequest . Quando la coda è bloccata, verranno elaborate solo le richieste con SrbFlags ORed con SRB_FLAGS_BYPASS_LOCKED_QUEUE . I driver miniport SCSI non elaborano SRB_FUNCTION_LOCK_QUEUE richieste. |
SRB_FUNCTION_UNLOCK_QUEUE (0x19) | Rilascia la coda del driver di porta per un'unità logica bloccata in precedenza con SRB_FUNCTION_LOCK_QUEUE. Gli SrbFlags della richiesta di sblocco devono essere ORed con SRB_FLAGS_BYPASS_LOCKED_QUEUE. Sono validi solo i membri SRB Length,Function, SrbFlags e OriginalRequest . I driver miniport SCSI non elaborano le richieste di SRB_FUNCTION_UNLOCK_QUEUE . |
SRB_FUNCTION_DUMP_POINTERS (0x26) | Una richiesta con questa funzione viene inviata a un driver miniport Storport usato per controllare il disco che contiene i dati di dump di arresto anomalo. La richiesta raccoglie informazioni necessarie dal driver miniport per supportare il dump di arresto anomalo e l'ibernazione. Vedere la struttura MINIPORT_DUMP_POINTERS . Un driver miniport fisico deve impostare il flag di STOR_FEATURE_DUMP_POINTERS nel membro FeatureSupport del relativo HW_INITIALIZATION_DATA per ricevere una richiesta con questa funzione. |
SRB_FUNCTION_FREE_DUMP_POINTERS (0x27) | Una richiesta con questa funzione viene inviata a un driver miniport Storport per rilasciare qualsiasi risorsa allocata durante una richiesta precedente per SRB_FUNCTION_DUMP_POINTERS. |
SRB_FUNCTION_QUIESCE_DEVICE (0x1A) | La richiesta è solo tra una classe di archiviazione e un driver di porta di archiviazione e non viene inviata a miniport. Questa funzione funge da attesa dal driver di classe per il driver di porta per completare tutte le operazioni di I/Os in sospeso. |
SRB_FUNCTION_PNP (0x25) | La richiesta è una richiesta estesa PnP formattata come struttura SRBEX_DATA_PNP . L'offset dei dati delle richieste estese si trova in SrbExDataOffset[0]. |
SRB_FUNCTION_POWER (0x24) | La richiesta è una richiesta estesa di alimentazione formattata come struttura SRBEX_DATA_POWER . L'offset dei dati delle richieste estese si trova in SrbExDataOffset[0]. |
SRB_FUNCTION_WMI (0x17) | La richiesta è una richiesta estesa di alimentazione formattata come struttura SRBEX_DATA_WMI . L'offset dei dati delle richieste estese si trova in SrbExDataOffset[0]. |
SrbFlags
Indica vari parametri e opzioni per la richiesta. SrbFlags è di sola lettura, tranne quando SRB_FLAGS_UNSPECIFIED_DIRECTION è impostato e i driver miniport di schede DMA subordinate sono necessari per aggiornare SRB_FLAGS_DATA_IN o SRB_FLAGS_DATA_OUT. Questo membro può avere uno o più flag impostati.
Contrassegno | Significato |
---|---|
SRB_FLAGS_QUEUE_ACTION_ENABLE | Indica che le azioni della coda contrassegnate devono essere abilitate. |
SRB_FLAGS_DISABLE_AUTOSENSE | Indica che le informazioni sul senso della richiesta non devono essere restituite. |
SRB_FLAGS_DATA_IN | Indica che i dati verranno trasferiti dal dispositivo al sistema. |
SRB_FLAGS_DATA_OUT | Indica che i dati verranno trasferiti dal sistema al dispositivo. |
SRB_FLAGS_UNSPECIFIED_DIRECTION | Definito per la compatibilità con le versioni precedenti con le interfacce SCSI ASPI/CAM, questo flag indica che la direzione di trasferimento potrebbe essere una delle versioni precedenti, perché entrambi i flag precedenti sono impostati. Se questo flag è impostato, un driver miniport deve determinare la direzione di trasferimento esaminando la fase di dati per la destinazione sul bus SCSI. |
SRB_FLAGS_NO_DATA_TRANSFER | Indica nessun trasferimento di dati con questa richiesta. Se questa opzione è impostata, i flag SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN e SRB_FLAGS_UNSPECIFIED_DIRECTION sono chiari. |
SRB_FLAGS_DISABLE_SYNCH_TRANSFER | Indica l'HBA, se possibile, deve eseguire operazioni di I/O asincrone per questa richiesta di trasferimento. Se l'I/O sincrono è stato negoziato in precedenza, l'HBA deve rinegoziare per le operazioni di I/O asincrone prima di eseguire il trasferimento. |
SRB_FLAGS_DISABLE_DISCONNECT | Indica che l'HBA non deve consentire alla destinazione di disconnettersi dal bus SCSI durante l'elaborazione di questa richiesta. |
SRB_FLAGS_BYPASS_FROZEN_QUEUE | Questo flag è irrilevante per i driver miniport. |
SRB_FLAGS_NO_QUEUE_FREEZE | Questo flag è irrilevante per i driver miniport. |
SRB_FLAGS_IS_ACTIVE | Questo flag è irrilevante per i driver miniport. |
SRB_FLAGS_ALLOCATED_FROM_ZONE | Questo flag è irrilevante per i driver miniport ed è obsoleto per i nuovi driver di classe Di Windows. Per un driver di classe legacy di Windows, questo indica se lo SRB è stato allocato da un buffer di zona. Se questo flag è impostato, il driver di classe deve chiamare ExInterlockedFreeToZone per rilasciare SRB; in caso contrario, deve chiamare ExFreePool. I nuovi driver di classe devono usare elenchi lookaside anziché buffer di zona. |
SRB_FLAGS_SGLIST_FROM_POOL | Questo flag è irrilevante per i driver miniport. Per il driver di classe, questo indica che la memoria per un elenco a dispersione/raccolta è stata allocata da un pool non di paging. Se questo flag è impostato, il driver di classe deve chiamare ExFreePool per rilasciare la memoria dopo il completamento di SRB. |
SRB_FLAGS_BYPASS_LOCKED_QUEUE | Questo flag è irrilevante per i driver miniport. Per il driver della porta, questo flag indica che la richiesta deve essere elaborata indipendentemente dal fatto che la coda dell'unità logica sia bloccata o meno. Un driver di livello superiore deve impostare questo flag per inviare una richiesta di SRB_FUNCTION_UNLOCK_QUEUE . |
SRB_FLAGS_NO_KEEP_AWAKE | Questo flag è irrilevante per i driver miniport. Un driver di classe Windows usa questo flag per indicare al driver della porta di non riuscire la richiesta anziché accendere il dispositivo per gestire questa richiesta. |
SRB_FLAGS_FREE_SENSE_BUFFER | Indica che la porta o il driver miniport ha allocato un buffer per i dati di rilevamento. In questo modo, il driver di classe deve liberare il buffer dei dati sense dopo l'estrazione dei dati. |
SRB_FLAGS_D3_PROCESSING | Indica che la richiesta fa parte dell'elaborazione D3. I miniport che supportano il controllo alimentazione di runtime non devono chiamare StorPortPoFxActivateComponent o StorPortPoFxIdleComponent con queste richieste |
SRB_FLAGS_ADAPTER_CACHE_ENABLE | Indica che l'adattatore può memorizzare nella cache i dati. |
ReservedUlong2
Riservato. Impostare su 0.
RequestTag
Contiene il valore queue-tag assegnato dal driver di porta specifico del sistema operativo. Se questo membro viene usato per l'accodamento con tag, HBA supporta l'accodamento interno delle richieste alle unità logiche (LU) e il driver miniport impostato TaggedQueueing su TRUE nel PORT_CONFIGURATION_INFORMATION per questo HBA.
RequestPriority
Assegnazione di priorità per SRB.
RequestAttribute
Indica il messaggio di accodamento con tag da utilizzare quando è impostato il flag di SRB_FLAGS_QUEUE_ACTION_ENABLE . Il valore può essere uno dei seguenti: SRB_SIMPLE_TAG_REQUEST, SRB_HEAD_OF_QUEUE_TAG_REQUEST o SRB_ORDERED_QUEUE_TAG_REQUEST.
TimeOutValue
Indica l'intervallo, in secondi, che la richiesta può essere eseguita prima che il driver di porta specifico del sistema operativo possa considerarlo timeout. I driver Miniport non sono necessari per le richieste temporali perché il driver della porta lo fa già.
DUMMYUNIONNAME
Unione contenente Windows 10 e campi successivi.
DUMMYUNIONNAME.SystemStatus
Usato per archiviare le informazioni sullo stato degli errori di sistema nelle condizioni di errore di SrbStatus (ad esempio, SRB_STATUS_INTERNAL_ERROR).
DUMMYUNIONNAME.RequestTagHigh4Bytes
Usato per archiviare quattro byte elevati di tag univoci se è abilitata la funzionalità tag univoca.
SystemStatus
Usato dal driver Storport, invece di SrbStatus, per segnalare lo stato della richiesta completata ogni volta che la richiesta non può essere recapitata al driver miniport. In questi casi, SrbStatus è impostato su SRB_STATUS_INTERNAL_ERROR. Questo membro viene usato esclusivamente per la comunicazione tra Storport e il driver di classe e non deve essere usato dai driver miniport.
ZeroGuard1
Un'area di guardia da proteggere contro i conducenti che interpretano questa struttura come SCSI_REQUEST_BLOCK. Impostare su 0.
AddressOffset
Offset dell'indirizzo della richiesta di archiviazione dall'inizio di questa struttura. Questo offset individua una struttura STOR_ADDRESS che contiene l'indirizzo della richiesta.
NumSrbExData
Numero di blocchi di dati SRB estesi per questa richiesta.
DataTransferLength
Indica le dimensioni, in byte, del buffer di dati. Se si verifica una sottorun, il driver miniport deve aggiornare questo membro al numero di byte effettivamente trasferiti.
DataBuffer
Punta al buffer dei dati. I driver Miniport non devono usare questo valore come puntatore dati, a meno che il driver miniport non imposti MapBuffers su TRUE nel PORT_CONFIGURATION_INFORMATION per l'HBA. Nel caso di richieste di SRB_FUNCTION_IO_CONTROL, tuttavia, i driver miniport possono usare questo valore come puntatore dati indipendentemente dal valore di MapBuffers.
ZeroGuard2
Un'area di guardia da proteggere contro i conducenti che interpretano questa struttura come SCSI_REQUEST_BLOCK. Impostare su 0.
OriginalRequest
Punta all'IRP per questa richiesta. Questo membro è irrilevante per i driver miniport.
ClassContext
Punta ai dati del contesto del driver di classe per questa richiesta. Questo membro è irrilevante per i driver miniport.
PortContext
Punta a dati di contesto del driver di porta per questa richiesta. Questo membro è irrilevante per i driver miniport.
MiniportContext
Punta all'estensione Srb. Un driver miniport non deve utilizzare questo membro se imposta SrbExtensionSize su zero in HW_INITIALIZATION_DATA. La memoria in MiniportContext non viene inizializzata dal driver di porta specifico del sistema operativo e i dati determinati dal driver miniport possono essere accessibili direttamente dall'HBA. L'indirizzo fisico corrispondente può essere ottenuto chiamando StorportGetPhysicalAddress con il puntatore MiniportContext .
NextSrb
Indica il STORAGE_REQUEST_BLOCK a cui si applica questa richiesta. Solo un piccolo subset di richieste usa un secondo SRB, ad esempio SRB_FUNCTION_ABORT_COMMAND.
_STORAGE_REQUEST_BLOCK
SrbExDataOffset[ANYSIZE_ARRAY]
Matrice di offset che specifica la posizione dei blocchi di dati estesi per SRB. Questa matrice è vuota se NumSrbExData = 0.
Commenti
A partire da Windows 8, è supportato un tipo SRB esteso con l'uso della struttura STORAGE_REQUEST_BLOCK. STORAGE_REQUEST_BLOCK estende le funzioni SRB, consentendo l'aggiunta di blocchi di dati estesi per la funzione SRB alla richiesta. Il supporto per le richieste SRB che usano la struttura SCSI_REQUEST_BLOCK continuerà.
Se NumSrbExData> 0, gli offset per i blocchi di dati estesi SRB si trovano nella matrice SrbExDataOffset . Ogni offset è relativo all'inizio di questa struttura e punta a una struttura SRBEX_DATA contenente il blocco di dati esteso.
L'indirizzo del dispositivo di destinazione per SRB si trova in una struttura STOR_ADDRESS indicata da AddressOffset.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Intestazione | minitape.h (include Storport.h, Srb.h, Minitape.h) |