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 포함) |