다음을 통해 공유


IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL(ehstorioctl.h)

IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE 요청은 스토리지 디바이스 큐의 상태를 변경하기 위해 사일로 드라이버 및 애플리케이션에 의해 전송됩니다. 스토리지 디바이스 큐의 IO 요청은 디바이스가 일시적으로 권한이 없는 경우 유지됩니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

Irp->AssociatedIrp.SystemBuffer 입력 버퍼에는 ACT_QUEUE_STATE 구조가 포함되어 있습니다. ACT_QUEUE_STATEehstorioctl.h 다음과 같이 선언됩니다.

typedef struct tagACT_QUEUE_STATE
{
    BOOLEAN fFrozen;
} ACT_QUEUE_STATE;

입력 버퍼 길이

ACT_QUEUE_STATE 구조체의 길이입니다.

출력 버퍼

없음.

출력 버퍼 길이

없음.

상태 블록

상태 필드에 다음 값 중 하나를 반환할 수 있습니다.

상태 값 묘사
STATUS_SUCCESS 큐 상태가 성공적으로 변경되었습니다.
STATUS_INVALID_BUFFER_SIZE 입력 버퍼 길이가 너무 작습니다.
STATUS_ACCESS_DENIED IOCTL 요청은 사일로 드라이버에서 발급되지 않았습니다.

발언

임시 권한이 필요한 경우 사일로 드라이버 또는 애플리케이션은 스토리지 디바이스 IO 요청 큐를 중지할 수 있습니다. 일반적으로 임시 권한 없음은 저전력 상태 또는 정책에서 잠긴 사용자 세션과 같은 고급 스토리지 디바이스의 잠금이 필요한 경우에 발생합니다. 이러한 경우 IO 요청에 실패하고 데이터 손실을 유발하는 대신 보류 중인 IO 요청을 보류하는 것이 좋습니다.

애플리케이션의 IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE 요청 남용을 방지하기 위해 드라이버만 이 IOCTL을 발급할 수 있습니다. 사용자 모드 애플리케이션에서 보낸 경우 이 요청은 STATUS_ACCESS_DENIED 함께 실패합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8부터 사용 가능
헤더 ehstorioctl.h(EhStorIoctl.h 포함)

참고 항목

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE