DEVICE_MANAGE_DATA_SET_ATTRIBUTES-Struktur (ntddstor.h)
Die DEVICE_DSM_INPUT -Struktur (oder DEVICE_MANAGE_DATA_SET_ATTRIBUTES) gibt eine Verwaltungsaktion für die Datasetattribute für ein Gerät an.
Syntax
typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
ULONG Size;
DEVICE_DSM_ACTION Action;
ULONG Flags;
ULONG ParameterBlockOffset;
ULONG ParameterBlockLength;
ULONG DataSetRangesOffset;
ULONG DataSetRangesLength;
} DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES, DEVICE_DSM_INPUT, *PDEVICE_DSM_INPUT;
Member
Size
Größe der DEVICE_DSM_INPUT-Struktur in Bytes. Der Wert dieses Members ändert sich, wenn Member der Struktur hinzugefügt werden.
Action
Ein DEVICE_DSM_ACTION Wert, der die auszuführende Aktion angibt. Eine Liste der Aktionswerte und Beschreibungen finden Sie unter DEVICE_DSM_ACTION Beschreibungen .
Wenn das DeviceDsmActionFlag_NonDestructive-Flag (wichtigstes Bit) in Aktion festgelegt ist, ist die angegebene Aktion nicht zerstörungsfähig. Bei zerstörungsfreien Aktionen kann der Treiber die IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung sicher an den nächstniedrigen Treiber im Stapel weiterleiten, auch wenn der Treiber die angegebene Aktion nicht verarbeitet. Wenn der Treiber den DSM verarbeitet, sollte er die normale Verarbeitung des Datasetbereichsblocks ausführen, der von den Elementen DataSetRangesOffset und DataSetRangesLength angegeben wird, bevor er die IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung an den nächstniedrgenen Treiber weiterleitet.
Flags
Diese Flags sind global für alle Steuerungsaktionen. Dieses Element kann auf eines der folgenden Flags festgelegt werden:
Flagwert | Bedeutung |
---|---|
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE | Die Steuerelementaktion wird für den gesamten Block von Datasetbereichen angegeben. Wenn dieses Flag festgelegt ist, müssen die Elemente DataSetRangesOffset und DataSetRangesLength auf 0 festgelegt werden. |
ParameterBlockOffset
Gibt den Start des Parameterblocks innerhalb der Nutzlast der IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung an. Das Format des Parameterblocks hängt vom Wert des Aktionselements ab. Weitere Informationen zum Parameterblockformat finden Sie unter DEVICE_DSM_ACTION Beschreibungen. Hinweis: Der Offset des Parameterblocks muss an der Adressgrenze des entsprechenden Parameters ausgerichtet werden.
Wenn ParameterBlockOffset auf null festgelegt ist, ist der Parameterblock nicht vorhanden.
ParameterBlockLength
Gibt die Länge des Parameterblocks in Bytes innerhalb der Nutzlast der IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung an.
Wenn ParameterBlockLength auf 0 festgelegt ist, ist der Parameterblock nicht vorhanden.
DataSetRangesOffset
Gibt den Anfang des Datasetblocks innerhalb der Nutzlast der IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung an. Dieser Block besteht aus einem oder mehreren zusammenhängenden Einträgen, die als DEVICE_DSM_RANGE-Strukturen formatiert sind. Hinweis: Der Offset des Datasetbereichsblocks muss an der Adressgrenze der DEVICE_DSM_RANGE-Struktur ausgerichtet werden.
Wenn sie auf null festgelegt ist, ist der Block der Datasetbereiche nicht vorhanden.
DataSetRangesLength
Gibt die Länge des Datasetblocks in Bytes innerhalb der Nutzlast der IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung an. Wenn DataSetRangesLength auf 0 festgelegt ist, ist der Block der Datasetbereiche nicht vorhanden.
Hinweise
Weitere Informationen zum Format der Nutzlast für eine IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Anforderung finden Sie unter Übersicht über die Datasetverwaltung. Die Gesamtgröße des Puffers sollte mindestens sizeof(DEVICE_DSM_INPUT) + ParameterBlockLength + DataSetRangesLength
sein.
Der Block der Datasetbereiche wird durch die Elemente DataSetRangesOffset und DataSetRangesLength angegeben. Wenn dieser Block vorhanden ist, enthält er zusammenhängende DEVICE_DSM_RANGE Strukturen.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddstor.h (include Ntddstor.h) |
Weitere Informationen
Übersicht über die Datasetverwaltung