다음을 통해 공유


메모리 파일 I/O 수행

[멀티미디어 파일 I/O 이 페이지와 연결된 기능은 레거시 기능입니다. 는 원본 판독기로 대체되었습니다. 원본 판독기 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능한 경우 새 코드에서 멀티미디어 파일 I/O 대신 원본 판독기 사용할 것을 강력히 권장합니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

멀티미디어 파일 I/O 서비스를 사용하면 메모리 블록을 파일로 처리할 수 있습니다. 이 기능은 메모리에 파일 이미지가 이미 있는 경우에 유용할 수 있습니다. 메모리 파일을 사용하면 I/O를 위해 메모리 파일을 디스크 기반 파일처럼 처리할 수 있으므로 코드의 특수 사례 조건 수를 줄일 수 있습니다. 클립보드와 함께 메모리 파일을 사용할 수도 있습니다.

I/O 버퍼와 마찬가지로 메모리 파일은 애플리케이션 또는 파일 I/O 관리자가 할당한 메모리를 사용할 수 있습니다. 또한 메모리 파일은 확장 가능하거나 확장할 수 없습니다. 파일 I/O 관리자가 확장 가능한 메모리 파일의 끝에 도달하면 미리 정의된 증분 단위로 메모리 파일을 확장합니다.

메모리 파일을 열려면 mmioOpen 함수를 사용하고, szFilename 매개 변수를 NULL로 설정하며, dwOpenFlags 매개 변수에 MMIO_READWRITE 플래그를 설정합니다. 다음과 같이 설정된 MMIOINFO 구조를 가리키도록 lpmmioinfo 매개 변수를 설정합니다.

  1. pIOProc 멤버를 NULL로 설정합니다.
  2. fccIOProc 멤버를 FOURCC_MEM 설정합니다.
  3. 메모리 블록을 가리키도록 pchBuffer 멤버를 설정합니다. 파일 I/O 관리자가 메모리 블록을 할당하도록 요청하려면 pchBuffer NULL 설정합니다.
  4. cchBuffer 멤버를 메모리 블록의 초기 크기로 설정합니다.
  5. adwInfo 멤버를 메모리 블록의 최소 확장 크기로 설정합니다. 확장 불가능한 메모리 파일의 경우 adwInfoNULL로 설정합니다.
  6. 다른 모든 멤버를 0으로 설정합니다.

제한 없이 비확장 메모리 파일로 사용할 메모리를 할당할 수 있습니다.