IOCTL_SCSI_MINIPORT_NVCACHE IOCTL(ntddscsi.h)
여기에 정의된 NV 캐시 관리 작업은 DeviceIoControl 및 IOCTL_SCSI_MINIPORT 제어 코드를 사용하여 관리자 권한으로 실행되는 사용자 모드 애플리케이션 코드에서 호출할 수 있습니다. 또는 호출자는 IoBuildDeviceIoControlRequest 및 IOCTL_SCSI_MINIPORT 제어 코드를 사용하는 커널 모드 드라이버 코드일 수 있습니다.
NV 캐시 관리 함수 요청은 NVCACHE_REQUEST_BLOCK 구조의 필드에 지정됩니다. IOCTL_SCSI_MINIPORT 입력은 SRB_IO_CONTROL 구조와 NVCACHE_REQUEST_BLOCK구조가 포함된 사용자 정의 데이터 구조입니다. 추가 함수별 데이터는 필요에 따라 NVCACHE_REQUEST_BLOCK 구조를 따를 수 있습니다.
NV 캐시 관리 기능에 사용되는 인터페이스는 두 계층으로 구성됩니다. 첫 번째 계층은 호출자와 포트 드라이버 간의 인터페이스이며 IOCTL_SCSI_MINIPORT 정의됩니다. 두 번째 계층은 ATA8-ACS 사양 및 IOCTL_SCSI_MINIPORT_NVCACHE 정의된 호출자와 디바이스 간의 인터페이스입니다. 사용자 모드 애플리케이션 코드에 대한 API는 DeviceIoControl 인터페이스입니다. 커널 모드 드라이버 코드에 대한 API는 IOCTL_SCSI_MINIPORT 사용하는 IoBuildDeviceIoControlRequest 인터페이스입니다.
주 코드
입력 버퍼
Irp-AssociatedIrp.SystemBuffer>의 버퍼에는 서명 필드가 "HYBRDISK"로 설정된 SRB_IO_CONTROL 구조체와 ControlCode 필드가 IOCTL_SCSI_MINIPORT_NVCACHE. NVCACHE_REQUEST_BLOCK 구조체는 SRB_IO_CONTROL 구조체 바로 뒤를 따릅니다. 선택적 함수별 데이터 버퍼는 NVCACHE_REQUEST_BLOCK 구조 바로 뒤를 따릅니다.
입력 버퍼 길이
Parameters.DeviceIoControl.InputBufferLength 는 모든 입력 데이터의 크기(바이트)를 나타냅니다( SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCK 및 함수별 데이터 버퍼 결합). 데이터 버퍼의 존재 또는 부재는 NVCACHE_REQUEST_BLOCK****DataBufSize 필드로 표시됩니다.
출력 버퍼
업데이트된 SRB_IO_CONTROLSRB_IO_CONTROL**]() 및 NVCACHE_REQUEST_BLOCK 구조체와 선택적 함수별 데이터 버퍼는 Irp-AssociatedIrp.SystemBuffer>에서 버퍼로 반환됩니다.
출력 버퍼 길이
버퍼의 길이입니다.
상태 블록
정보 필드에는 출력 버퍼에 반환된 바이트 수가 포함됩니다. 상태 필드는 작업의 결과를 나타냅니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddscsi.h(Ntddscsi.h 포함) |