wiasWritePageBufToFile 함수(wiamdef.h)

wiasWritePageBufToFile 함수는 임시 페이지 버퍼의 내용을 이미지 파일에 씁니다.

구문

HRESULT wiasWritePageBufToFile(
  [in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);

매개 변수

[in] pmdtc

MINIDRV_TRANSFER_CONTEXT 구조체에 대한 포인터입니다.

반환 값

성공하면 함수는 S_OK 반환합니다. 함수가 실패하면 표준 COM 오류 또는 WIA_ERROR_XXX 오류 중 하나를 반환합니다(Microsoft Windows SDK 설명서에 설명됨).

설명

함수는 미니드라이버 할당 임시 페이지 버퍼의 데이터를 WIA 서비스에서 연 이미지 파일에 씁니다. 미니드라이버에서는 일반적으로 미니드라이버가 임시 버퍼를 할당한 데이터 페이지를 가져온 후 이 함수를 호출합니다.

이 함수는 이미지 데이터의 버퍼를 모든 형식의 이미지 파일에 쓰는 데 사용할 수 있는 wiasWriteBufToFile과 유사합니다. WIA 미니드라이버가 모든 적절한 태그, IFD(이미지 파일 디렉터리) 항목 및 기타 비이미지 데이터를 포함하여 다중 페이지 TIFF 파일에 이미지 데이터 페이지를 쓰려는 경우 wiasWriteBufToFile이 아닌 이 함수를 호출해야 합니다.

pmdtc-hFile> 식에는 TYMED_FILE(및 TYMED_MULTIPAGE_FILE) 전송의 파일에 대한 핸들이 포함되어 있습니다. 작성 중인 파일에 직접 액세스하는 데 사용할 수 있습니다.

사용 방법의 예는 다음과 같습니다.

SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
    pMyBuffer,
    dwNumBytesToWrite,
   &dwNumBytesWritten,
    NULL)) {
     //
     // Some error happened
     //
     .
     .
     .
    }

그러나 TYMED_FILE 파일 핸들만 사용하고 전송을 TYMED_MULTIPAGE_FILE 경우( wiasWritePageBufToFile을 호출하는 대신 파일 핸들을 사용하여 파일에 직접 데이터를 쓰려면) wiasWriteBufToFile을 사용합니다. 이 함수는 다음과 같은 작업을 수행합니다.

bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
    pmdtc->pTransferBuffer,
    pmdtc->lItemSize,
    &ulWritten,
    NULL);

이는 기본적으로 파일 핸들을 직접 사용하는 경우 수행할 작업입니다. 첫 번째 예제의 장점은 WIA의 이후 릴리스에서 구현이 변경된 경우(예: WIA 서비스가 내부적으로 파일 대신 파이프를 사용하기 시작한 경우) 드라이버를 업데이트할 필요가 없다는 것입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows Me 및 Windows XP 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 wiamdef.h(Wiamdef.h 포함)
라이브러리 Wiaservc.lib
DLL Wiaservc.dll

추가 정보

MINIDRV_TRANSFER_CONTEXT

wiasWriteBufToFile

wiasWritePageBufToStream