다음을 통해 공유


BPIO_OPERATIONS 열거형(ntddstor.h)

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

통사론

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