다음을 통해 공유


PIO 작업 중 캐시된 데이터 플러시

일부 플랫폼에서는 프로세서의 명령 및 데이터 캐시가 PIO 읽기 작업 중에 캐시 일관성 이상을 나타냅니다.

참고 읽기 작업 중에 데이터 무결성을 유지하려면 PIO를 사용하는 드라이버는 각 읽기 작업이 끝날 때 KeFlushIoBuffers 호출 지침을 따라야 합니다.

예를 들어 디바이스에서 시스템 메모리로 PIO를 전송하는 드라이버는 각 디바이스 전송 작업이 끝날 때 KeFlushIoBuffers 를 호출해야 합니다. 또 다른 예로, 시스템 메모리에 디바이스 레지스터 시퀀스를 읽는 드라이버는 시퀀스의 끝에 KeFlushIoBuffers 를 호출해야 합니다. 그렇지 않으면 이러한 드라이버는 일부 플랫폼에서 시스템 메모리가 아닌 프로세서의 데이터 캐시에 있는 데이터에 액세스하려고 시도할 수 있습니다.

프로세서가 캐시 일관성을 유지하기 위해 의존할 수 있는 경우 KeFlushIoBuffers는 아무 작업도 수행하지 않으므로 이 지원 루틴에 대한 호출은 이러한 플랫폼에서 거의 오버헤드가 없습니다.