다음을 통해 공유


BPIO_OPERATIONS 열거형(ntddstor.h)

BPIO_OPERATIONS IOCTL_STORAGE_MANAGE_BYPASS_IO제어 코드 에서 지원하는 다양한 BypassIO 작업을 정의합니다.

Syntax

typedef enum _BPIO_OPERATIONS {
  BPIO_OP_ENABLE,
  BPIO_OP_DISABLE,
  BPIO_OP_QUERY
} BPIO_OPERATIONS;

상수

 
BPIO_OP_ENABLE
지정된 볼륨 또는 디스크(디바이스)에 대해 BypassIO를 사용하도록 설정하는 요청입니다. 즉, 드라이버가 해당 스택에 대한 모든 읽기/쓰기를 볼 수 없습니다.

참고

볼륨 및 스토리지 스택의 모든 드라이버는 BypassIO 사용 요청을 거부할 수 있지만 가능한 한 사용하도록 설정하는 것이 좋습니다.

사전 작업에서 다음을 수행합니다.

* 드라이버가 지정된 디바이스에 대해 BypassIO를 지원할 수 있는 경우 스택 아래로 요청을 전달해야 합니다.
* 드라이버가 지정된 디바이스에 대해 BypassIO를 지원할 수 없는 경우 다음을 수행해야 합니다.
* 사용 요청이 거부 된 이유, 드라이버 이름 및 사용 요청을 거부한 이유에 대한 추가 세부 정보와 함께 고유한 설명 문자열을 설명하는 작업 NTSTATUS를 포함하여 BPIO_OUTPUT 구조를 업데이트합니다.
* STATUS_SUCCESS 사용하여 IOCTL_STORAGE_MANAGE_BYPASS_IO 완료합니다.

사후 작업 중에 드라이버는 아래의 모든 드라이버가 BypassIO를 지원할 수 있는지 확인할 수 있습니다. 그렇다면 드라이버는 파일에 필요한 상태를 유지하고 완료 처리를 계속해야 합니다. BypassIO 사용 상태와 호환되지 않을 수 있는 요청을 올바르게 처리하기 위해 상태를 유지하는 것은 드라이버의 책임입니다.

파일 시스템은 현재 BypassIO가 사용하도록 설정된 파일 수의 볼륨당 수를 유지 관리합니다. BPIO_OP_ENABLE 작업은 이 수가 0에서 1로 전환되는 경우에만 전송됩니다.

볼륨 또는 스토리지 스택 드라이버가 BypassIO를 거부하더라도 파일 시스템 스택은 BypassIO를 계속 수행할 수 있습니다. 이는 누군가가 볼륨 스택에서 BypassIO를 거부한 경우에도 파일 시스템에서 필터를 무시할 수 있기 때문입니다.

BPIO_OP_DISABLE
지정된 볼륨/디스크에 대해 BypassIO를 사용하지 않도록 설정하라는 요청입니다. 이를 통해 드라이버는 연결된 모든 BypassIO 상태를 정리할 수 있습니다.

파일 시스템은 마지막 BypassIO 사용 파일이 비활성화되거나 닫혀 있을 때 이 작업을 보냅니다(볼륨당 개수가 1에서 0으로 전환됨).

드라이버가 BPIO_OP_DISABLE 수신하지만 현재 BypassIO를 사용하도록 설정하지 않은 경우 요청을 무시해야 합니다.

이 작업은 실패하면 안 됩니다.
BPIO_OP_QUERY
지정된 볼륨 또는 디스크에 대해 BypassIO를 사용할 수 있는지 여부를 쿼리합니다.

스토리지 드라이버는 BPIO_OP_ENABLE 작업과 유사한 이 요청을 처리하여 BPIO_OUTPUT구조의 적절한 필드에 동일한 진단 정보를 입력해야 합니다. 주요 차이점은 드라이버가 QUERY 중에 BypassIO ENABLE 상태로 들어가지 않는다는 것입니다.

설명

자세한 내용은 스토리지 드라이버에 대한 BypassIO 를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11
머리글 ntddstor.h

추가 정보

IOCTL_STORAGE_MANAGE_BYPASS_IO