두 가지 방법으로 캐비닛에서 파일을 추출할 수 있습니다. 첫 번째이자 가장 간단한 방법은 설치 함수에 기본 제공되는 자동 캐비닛 처리를 활용하는 것입니다.
설치 함수(예: SetupCommitFileQueue, SetupInstallFile및 SetupInstallFromInfSection)는 각 파일에 대한 압축을 확인합니다. 파일이 캐비닛에 있는 경우 함수는 먼저 캐비닛 외부에서 해당 이름의 파일을 검색합니다. 발견되면 함수는 외부 파일을 설치하고 캐비닛 내의 파일을 무시합니다. 이렇게 하면 캐비닛을 다시 빌드하지 않고 캐비닛 내의 단일 파일을 업데이트할 수 있습니다.
또한 설치 함수는 캐비닛에서 검색된 파일을 추적하므로 파일이 여러 번 설치되어 있더라도 한 번만 추출됩니다.
캐비닛에서 파일을 추출하는 두 번째 방법은 SetupIterateCabinet사용하는 것입니다. 이 함수는 캐비닛의 각 파일을 반복하여 찾은 각 파일에 대한 콜백 루틴에 알림을 보냅니다. 그런 다음 콜백 루틴은 파일을 추출할지 건너뛰어야 하는지 여부를 나타내는 값을 반환합니다.
메모
설치 API는 캐비닛 알림을 처리하는 기본 콜백 루틴을 제공하지 않습니다. SetupIterateCabinet 명시적으로 호출하는 경우 콜백 루틴을 제공하여 함수가 반환하는 캐비닛 알림을 처리해야 합니다.