Freigeben über


STORAGE_PROTOCOL_DATA_DESCRIPTOR-Struktur (ntddstor.h)

Diese Struktur wird in Verbindung mit IOCTL_STORAGE_SET_PROPERTY und IOCTL_STORAGE_QUERY_PROPERTY verwendet, um protokollspezifische Daten von einem Speichergerät oder Adapter festzulegen bzw. abzufragen.

Syntax

typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
  ULONG                          Version;
  ULONG                          Size;
  STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;

Member

Version

Version dieser Struktur. Legen Sie auf sizeof(STORAGE_PROTOCOL_DATA_DESCRIPTOR) fest.

Size

Gesamtgröße in Bytes des Deskriptors, einschließlich des Speicherplatzes für alle Protokolldaten. Muss =>sizeof(STORAGE_PROTOCOL_DATA_DESCRIPTOR) sein.

ProtocolSpecificData

Die protokollspezifischen Daten vom Typ STORAGE_PROTOCOL_SPECIFIC_DATA.

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.

Um einen Typ von NVMe-protokollspezifischen Informationen anzugeben, konfigurieren Sie die Struktur STORAGE_PROTOCOL_SPECIFIC_DATA wie folgt:

  • 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.

Um einen Typ von ATA-protokollspezifischen Informationen anzugeben, konfigurieren Sie die STORAGE_PROTOCOL_SPECIFIC_DATA-Struktur wie folgt:

  • 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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Kopfzeile ntddstor.h (include Ntddstor.h)

Weitere Informationen

IOCTL_STORAGE_QUERY_PROPERTY

IOCTL_STORAGE_SET_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT