Freigeben über


IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)

Ein Treiber kann IOCTL_STORAGE_QUERY_PROPERTY verwenden, um Eigenschaften eines Speichergeräts oder Adapters zurückzugeben. Die Anforderung gibt die Art der abzurufenden Informationen an, z. B. Abfragedaten für ein Gerät oder Funktionen und Einschränkungen eines Adapters. IOCTL_STORAGE_QUERY_PROPERTY kann auch verwendet werden, um zu bestimmen, ob der Porttreiber eine bestimmte Eigenschaft unterstützt oder welche Felder in der Eigenschaftsbeschreibung mit einer nachfolgenden Anforderung zur Änderung der Eigenschaft geändert werden können.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Parameters.DeviceIoControl.InputBufferLength gibt die Größe des Parameterpuffers in Bytes bei Irp-AssociatedIrp.SystemBuffer> an, der = sizeof(STORAGE_PROPERTY_QUERY) sein >muss.

Irp->AssociatedIrp.SystemBuffer enthält STORAGE_PROPERTY_QUERY Daten, die angeben, ob das Gerät oder der Adapter, der Typ der auszuführenden Abfrage und alle zusätzlichen Parameter, die für die Abfrage erforderlich sind, wie z. B. der Seitencode für eine bestimmte SCSI-Modus-Sense-Seite. Geräteeigenschaften dürfen nur von einem Gerät abgerufen werden. Der Versuch, Geräteeigenschaften von einem Adapter abzurufen, führt zu einem Fehler.

Parameters.DeviceIoControl.OutputBufferLength gibt die Anzahl der Bytes an, die in Irp-AssociatedIrp.SystemBuffer> geschrieben werden können. OutputBufferLength kann null sein, um zu bestimmen, ob eine Eigenschaft vorhanden ist, ohne ihre Daten abzurufen.

Länge des Eingabepuffers

Parameters.DeviceIoControl.InputBufferLength gibt die Größe des Parameterpuffers in Bytes bei Irp-AssociatedIrp.SystemBuffer> an, der = sizeof(STORAGE_PROPERTY_QUERY) sein >muss.

Ausgabepuffer

Der Treiber gibt Abfragedaten an den Puffer unter Irp-AssociatedIrp.SystemBuffer> zurück. An die -Struktur können unterschiedliche Mengen busspezifischer Daten angefügt werden.

Länge des Ausgabepuffers

Wandeln Sie die zurückgegebene Struktur in einen STORAGE_DESCRIPTOR_HEADER um, und überprüfen Sie den Size-Member , um die Anzahl der Bytes zu ermitteln, die die Struktur tatsächlich benötigt.

Statusblock

Das Feld Information ist auf die Anzahl der zurückgegebenen Bytes festgelegt. Das Feld Status ist auf STATUS_SUCCESS oder möglicherweise auf STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER oder STATUS_NOT_SUPPORTED festgelegt.

Anforderungen

Anforderung Wert
Header ntddstor.h (einschließen von Ntddstor.h)

Weitere Informationen

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME