STORAGE_PROTOCOL_SPECIFIC_DATA-Struktur (winioctl.h)
Beschreibt protokollspezifische Gerätedaten, die im Eingabe- und Ausgabepuffer einer IOCTL_STORAGE_QUERY_PROPERTY-Anforderung bereitgestellt werden.
Syntax
typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
STORAGE_PROTOCOL_TYPE ProtocolType;
DWORD DataType;
DWORD ProtocolDataRequestValue;
DWORD ProtocolDataRequestSubValue;
DWORD ProtocolDataOffset;
DWORD ProtocolDataLength;
DWORD FixedProtocolReturnData;
DWORD ProtocolDataRequestSubValue2;
DWORD ProtocolDataRequestSubValue3;
DWORD ProtocolDataRequestSubValue4;
} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA;
Member
ProtocolType
Der Protokolltyp. Werte für dieses Element werden in der STORAGE_PROTOCOL_TYPE-Enumeration definiert.
DataType
Der Protokolldatentyp. Datentypen werden in den STORAGE_PROTOCOL_NVME_DATA_TYPE - und STORAGE_PROTOCOL_ATA_DATA_TYPE-Enumerationen definiert.
ProtocolDataRequestValue
Der Wert der Protokolldatenanforderung.
ProtocolDataRequestSubValue
Der Unterwert der Protokolldatenanforderung.
ProtocolDataOffset
Der Offset des Datenpuffers vom Anfang dieser Struktur. Der typische Wert kann sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA) sein.
ProtocolDataLength
Die Länge der Protokolldaten.
FixedProtocolReturnData
Die zurückgegebenen Daten.
ProtocolDataRequestSubValue2
ProtocolDataRequestSubValue3
ProtocolDataRequestSubValue4
Hinweise
Wenn Sie IOCTL_STORAGE_QUERY_PROPERTY verwenden, um protokollspezifische Informationen im STORAGE_PROTOCOL_DATA_DESCRIPTOR abzurufen, konfigurieren Sie die STORAGE_PROPERTY_QUERY-Struktur wie folgt:
- Weisen Sie einen Puffer zu, der sowohl eine STORAGE_PROPERTY_QUERY als auch eine StrukturSTORAGE_PROTOCOL_SPECIFIC_DATA enthalten kann.
- Legen Sie das Feld PropertyID für eine Controller- bzw. Geräte-/Namespaceanforderung auf StorageAdapterProtocolSpecificProperty oder StorageDeviceProtocolSpecificProperty fest.
- Legen Sie das Feld QueryType auf PropertyStandardQuery fest.
- Füllen Sie die Struktur STORAGE_PROTOCOL_SPECIFIC_DATA mit den gewünschten Werten. Der Anfang der STORAGE_PROTOCOL_SPECIFIC_DATA ist das Feld AdditionalParameters von STORAGE_PROPERTY_QUERY.
- Legen Sie das Feld ProtocolType auf ProtocolTypeNVMe fest.
-
Legen Sie das Feld DataType auf einen durch STORAGE_PROTOCOL_NVME_DATA_TYPE definierten Enumerationswert fest:
- Verwenden Sie NVMeDataTypeIdentify, um Daten zum Identifizieren des Controllers oder zum Identifizieren von Namespacedaten abzurufen.
- Verwenden Sie NVMeDataTypeLogPage, um Protokollseiten (einschließlich SMART/Health-Daten) abzurufen.
- Verwenden Sie NVMeDataTypeFeature, um Features des NVMe-Laufwerks abzurufen.
- Legen Sie das Feld ProtocolType auf ProtocolTypeAta fest.
-
Legen Sie das Feld DataType auf einen Enumerationswert fest, der von STORAGE_PROTOCOL_ATA_DATA_TYPE definiert wird:
- Verwenden Sie AtaDataTypeIdentify , um das ATA-Laufwerk zu identifizieren.
- Verwenden Sie AtaDataTypeLogPage , um Protokollseiten vom ATA-Laufwerk abzurufen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 |
Unterstützte Mindestversion (Server) | Windows Server 2016 |
Kopfzeile | winioctl.h (einschließlich Windows.h) |