STORAGE_PROTOCOL_COMMAND struttura (ntddstor.h)
Questa struttura viene usata con il meccanismo pass-through IOCTL_STORAGE_PROTOCOL_COMMAND che rilascia un comando del protocollo specifico del fornitore a un dispositivo di archiviazione.
Sintassi
typedef struct _STORAGE_PROTOCOL_COMMAND {
ULONG Version;
ULONG Length;
STORAGE_PROTOCOL_TYPE ProtocolType;
ULONG Flags;
ULONG ReturnStatus;
ULONG ErrorCode;
ULONG CommandLength;
ULONG ErrorInfoLength;
ULONG DataToDeviceTransferLength;
ULONG DataFromDeviceTransferLength;
ULONG TimeOutValue;
ULONG ErrorInfoOffset;
ULONG DataToDeviceBufferOffset;
ULONG DataFromDeviceBufferOffset;
ULONG CommandSpecific;
ULONG Reserved0;
ULONG FixedProtocolReturnData;
ULONG FixedProtocolReturnData2;
ULONG Reserved1[2];
UCHAR Command[ANYSIZE_ARRAY];
} STORAGE_PROTOCOL_COMMAND, *PSTORAGE_PROTOCOL_COMMAND;
Members
Version
Versione di questa struttura. Impostare questa opzione per essere STORAGE_PROTOCOL_STRUCTURE_VERSION.
Length
Dimensione della struttura. Impostare questa opzione su sizeof(STORAGE_PROTOCOL_COMMAND).
ProtocolType
Tipo di protocollo.
Flags
Flag impostati per questa richiesta. Di seguito sono riportati flag validi.
Flag | Descrizione |
---|---|
STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST | Questo flag indica la richiesta di destinazione di un adattatore anziché un dispositivo. |
ReturnStatus
Stato della richiesta effettuata nel dispositivo di archiviazione. In Windows 10, i valori possibili che possono essere restituiti includono:
Valore di stato | Descrizione |
---|---|
STORAGE_PROTOCOL_STATUS_PENDING | La richiesta è in sospeso. |
STORAGE_PROTOCOL_STATUS_SUCCESS | La richiesta è stata completata correttamente. |
STORAGE_PROTOCOL_STATUS_ERROR | La richiesta ha rilevato un errore. |
STORAGE_PROTOCOL_STATUS_INVALID_REQUEST | La richiesta non è valida. |
STORAGE_PROTOCOL_STATUS_NO_DEVICE | Un dispositivo non è disponibile per effettuare una richiesta. |
STORAGE_PROTOCOL_STATUS_BUSY | Il dispositivo è occupato a agire sulla richiesta. |
STORAGE_PROTOCOL_STATUS_DATA_OVERRUN | Il dispositivo ha rilevato un overrun dei dati durante l'esecuzione della richiesta. |
STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES | Il dispositivo non può completare la richiesta a causa di risorse insufficienti. |
STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED | La richiesta non è supportata. |
ErrorCode
Codice di errore del protocollo specifico del bus da restituire per questa richiesta. Questa opzione è impostata facoltativamente.
CommandLength
Lunghezza del comando, in byte. Il chiamante deve impostare questo valore su un valore diverso da zero.
ErrorInfoLength
Lunghezza del buffer ErrorCode , in byte. Questa opzione è impostata facoltativamente e può essere impostata su 0.
DataToDeviceTransferLength
Dimensioni del buffer da trasferire nel dispositivo.
DataFromDeviceTransferLength
Le dimensioni del buffer che devono essere trasferite dal dispositivo.
TimeOutValue
Specifica la durata dell'attesa del dispositivo fino al timeout. Questo valore viene impostato in unità di secondi.
ErrorInfoOffset
Offset del buffer ErrorCode . Questo deve essere allineato al puntatore.
DataToDeviceBufferOffset
Offset del buffer che deve essere trasferito al dispositivo. Questa operazione deve essere allineata al puntatore e viene usata solo con una richiesta WRITE.
DataFromDeviceBufferOffset
Offset del buffer da trasferire dal dispositivo. Questa operazione deve essere allineata al puntatore e viene usata solo con una richiesta READ.
CommandSpecific
Dati specifici dei comandi aggiuntivi passati insieme al comando. Ciò dipende dal comando dal driver ed è facoltativamente impostato.
Reserved0
Riservato per utilizzi futuri.
FixedProtocolReturnData
I dati restituiti. Questa opzione è impostata facoltativamente. Alcuni protocolli come NVMe possono restituire una piccola quantità di dati (DWORD0 dalla voce della coda di completamento) senza la necessità di un trasferimento di dati di dispositivo separato.
FixedProtocolReturnData2
Dati restituiti2. Questa opzione è impostata facoltativamente. Alcuni protocolli come NVMe possono restituire una piccola quantità di dati (DWORD1 dalla voce della coda di completamento) senza la necessità di trasferire i dati del dispositivo separati.
Reserved1[2]
Riservato per utilizzi futuri.
Command[ANYSIZE_ARRAY]
Comando specifico del fornitore che deve essere passato al dispositivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Intestazione | ntddstor.h (include Ntddstor.h) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per