다음을 통해 공유


NVCACHE_REQUEST_BLOCK 구조체(ntddscsi.h)

NVCACHE_REQUEST_BLOCK 구조는 IOCTL_SCSI_MINIPORT 요청과 함께 H-HDD(하이브리드 하드 디스크 드라이브) 디바이스(예: Microsoft ReadyDrive 기술)를 관리하는 데 사용됩니다. 이 항목에서는 NV 캐시 관리자 호출에 대한 입력 데이터와 출력 데이터 모두에 대한 일반 구조를 정의합니다. 호출자는 DeviceIoControl 또는 IoBuildDeviceIoControlRequest를 호출하기 전에 필요한 모든 필드를 채워야 합니다. 미니포트 드라이버는 요청된 함수가 완료된 후 및 반환하기 전에 동일한 작업을 수행해야 합니다.

구문

typedef struct _NVCACHE_REQUEST_BLOCK {
  ULONG     NRBSize;
  USHORT    Function;
  ULONG     NRBFlags;
  ULONG     NRBStatus;
  ULONG     Count;
  ULONGLONG LBA;
  ULONG     DataBufSize;
  ULONG     NVCacheStatus;
  ULONG     NVCacheSubStatus;
} NVCACHE_REQUEST_BLOCK, *PNVCACHE_REQUEST_BLOCK;

멤버

NRBSize

sizeof(NVCACHE_REQUEST_BLOCK)입니다.

Function

수행할 작업을 지정합니다. 이 작업은 다음 값 중 하나일 수 있습니다.

의미
NRB_FUNCTION_NVCACHE_INFO 디바이스에서 NV Cache Manager 기능 지원 정보를 가져옵니다. 이 함수가 성공적으로 완료되면 필요한 데이터 필드가 호출자에게 반환됩니다. 반환 데이터 구조가 NV_FEATURE_PARAMETER.
NRB_FUNCTION_SPINDLE_STATUS 디바이스가 현재 회전 중인지 또는 아래로 회전하는지 확인합니다. ATA 디바이스의 경우 디바이스의 스핀들 상태 가져오려면 전원 모드 확인 명령이 필요합니다. SCSI 디바이스의 경우 Mode Sense 명령을 사용하여 디바이스의 현재 전원 모드를 쿼리할 수 있습니다.
NRB_FUNCTION_NVCACHE_POWER_MODE_SET NV 캐시 관리자 전원 모드를 켭니다.
NRB_FUNCTION_NVCACHE_POWER_MODE_RESET NV 캐시 관리자 전원 모드를 끕니다.
NRB_FUNCTION_FLUSH_NVCACHE 현재 NV 캐시 메모리에 고정된 데이터를 플러시하여 필요한 NV 캐시 메모리 공간을 사용할 수 있도록 합니다.
NRB_FUNCTION_QUERY_PINNED_SET 현재 NV 캐시 관리자 고정 집합에 있는 LBA(논리 블록 주소) 범위를 가져옵니다.
NRB_FUNCTION_QUERY_CACHE_MISS 디바이스가 단일 512바이트 블록의 LBA 범위에서 NV 캐시 누락을 보고할 것을 요청합니다.
NRB_FUNCTION_ADD_LBAS_PINNED_SET NV 캐시 관리자 집합 데이터에 지정된 LBA를 아직 없는 경우 NV 캐시 관리자 고정 집합에 추가합니다.
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET NV 캐시 집합 데이터에 지정된 LBA를 NV 캐시 고정 집합에서 제거합니다.
NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS 다음에 사용하도록 예약됩니다.
NRB_FUNCTION_PASS_HINT_PAYLOAD SATA 디바이스에 IO 힌트를 전달합니다.

NRBFlags

다음에 사용하도록 예약됩니다.

NRBStatus

드라이버에서 상태 NV Cache Manager 함수 요청을 나타냅니다. 다음 값 중 하나일 수 있습니다.

의미
NRB_SUCCESS 오류가 없습니다.
NRB_ILLEGAL_REQUEST 포트 드라이버에서 잘못된 요청이 검색되었습니다.
NRB_INVALID_PARAMETER 포트 드라이버에 잘못된 매개 변수가 전달되었습니다.
NRB_INPUT_DATA_OVERRUN 포트 드라이버에 너무 많은 데이터가 제공되었습니다.
NRB_INPUT_DATA_UNDERRUN 포트 드라이버에 제공된 데이터가 충분하지 않습니다.
NRB_OUTPUT_DATA_OVERRUN 포트 드라이버에서 반환된 데이터가 너무 많습니다.
NRB_OUTPUT_DATA_UNDERRUN 포트 드라이버에서 반환된 데이터가 충분하지 않습니다.

Count

지정된 함수를 사용하여 전송할 512 바이트 블록의 수입니다.

LBA

지정된 함수에 대한 디바이스의 LBA를 시작합니다.

DataBufSize

데이터 버퍼의 크기(바이트)입니다.

NVCacheStatus

디바이스에서 반환된 상태입니다. ATA 디바이스의 경우 이 값은 작업 파일에 있는 상태 등록의 내용입니다. SCSI 디바이스의 경우 이 값은 디바이스에서 반환된 센스 코드입니다.

NVCacheSubStatus

디바이스에서 반환된 오류 코드입니다. ATA 디바이스의 경우 이 값은 작업 파일에 있는 오류 등록의 내용입니다. SCSI 디바이스의 경우 이 값은 디바이스에서 반환된 Sense 키입니다.

설명

함수 동작에 대한 자세한 내용은 ATA8-ACS 사양의 섹션 7.20을 참조하세요.

요구 사항

요구 사항
헤더 ntddscsi.h(Ntddscsi.h 포함)

추가 정보

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_MINIPORT_NVCACHE