다음을 통해 공유


DEVICE_MANAGE_DATA_SET_ATTRIBUTES 구조체(ntddstor.h)

DEVICE_DSM_INPUT(또는 DEVICE_MANAGE_DATA_SET_ATTRIBUTES) 구조체는 디바이스의 데이터 집합 특성에 대한 관리 작업을 지정합니다.

통사론

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;

회원

Size

DEVICE_DSM_INPUT 구조체의 크기(바이트)입니다. 멤버가 구조체에 추가되면 이 멤버의 값이 변경됩니다.

Action

수행할 작업을 지정하는 DEVICE_DSM_ACTION 값입니다. 작업 값 및 설명 목록은 DEVICE_DSM_ACTION 설명 참조하세요.

DeviceDsmActionFlag_NonDestructive 플래그(가장 중요한 비트)가 작업설정된 경우 지정된 동작은 구조적이지 않습니다. 비동기 작업의 경우 드라이버는 드라이버가 지정된 작업을 처리하지 않더라도 스택의 다음 하위 드라이버로 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청을 안전하게 전달할 수 있습니다. 드라이버가 DSM을 처리하는 경우 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청을 다음 하위 드라이버로 전달하기 전에 DataSetRangesOffset 지정된 데이터 집합 범위 블록과 DataSetRangesLength 멤버의 정상적인 처리를 수행해야 합니다.

Flags

이러한 플래그는 모든 컨트롤 작업에 전역입니다. 이 멤버는 다음 플래그 중 하나로 설정할 수 있습니다.

플래그 값 의미
DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE 컨트롤 동작은 데이터 집합 범위의 전체 블록에 대해 지정됩니다. 이 플래그를 설정하면 DataSetRangesOffsetDataSetRangesLength 멤버를 0으로 설정해야 합니다.

ParameterBlockOffset

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청의 페이로드 내에서 매개 변수 블록의 시작을 지정합니다. 매개 변수 블록의 형식은 Action 멤버의 값에 따라 달라집니다. 매개 변수 블록 형식에 대한 자세한 내용은 DEVICE_DSM_ACTION 설명참조하세요. 참고: 매개 변수 블록의 오프셋은 해당 매개 변수의 주소 경계에 맞춰야 합니다.

ParameterBlockOffset 0으로 설정된 경우 매개 변수 블록이 존재하지 않습니다.

ParameterBlockLength

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청의 페이로드 내에 있는 매개 변수 블록의 길이(바이트)를 지정합니다.

ParameterBlockLength 0으로 설정된 경우 매개 변수 블록이 존재하지 않습니다.

DataSetRangesOffset

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청의 페이로드 내에서 데이터 집합 범위 블록의 시작을 지정합니다. 이 블록은 DEVICE_DSM_RANGE 구조체로 서식이 지정된 하나 이상의 연속 항목으로 구성됩니다. 참고: 데이터 집합 범위 블록의 오프셋은 DEVICE_DSM_RANGE 구조체의 주소 경계에 맞춰야 합니다.

0으로 설정하면 데이터 집합 범위의 블록이 존재하지 않습니다.

DataSetRangesLength

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청의 페이로드 내에 있는 데이터 집합 범위 블록의 길이(바이트)를 지정합니다. DataSetRangesLength 0으로 설정된 경우 데이터 집합 범위의 블록이 존재하지 않습니다.

발언

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청에 대한 페이로드 형식에 대한 자세한 내용은 데이터 세트 관리 개요참조하세요. 버퍼의 총 크기는 sizeof(DEVICE_DSM_INPUT) + ParameterBlockLength + DataSetRangesLength이상이어야 합니다.

데이터 집합 범위의 블록은 DataSetRangesOffsetDataSetRangesLength 멤버에 의해 지정됩니다. 이 블록이 있으면 연속된 DEVICE_DSM_RANGE 구조체가 포함됩니다.

요구 사항

요구
헤더 ntddstor.h(Ntddstor.h 포함)

참고 항목

데이터 세트 관리 개요

DEVICE_DSM_ACTION 설명

DEVICE_DSM_RANGE

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES