Share via


wiasWritePageBufToFile-Funktion (wiamdef.h)

Die wiasWritePageBufToFile-Funktion schreibt den Inhalt eines temporären Seitenpuffers in eine Bilddatei.

Syntax

HRESULT wiasWritePageBufToFile(
  [in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);

Parameter

[in] pmdtc

Zeiger auf eine MINIDRV_TRANSFER_CONTEXT-Struktur .

Rückgabewert

Bei Erfolg gibt die Funktion S_OK zurück. Wenn die Funktion fehlschlägt, gibt sie einen COM-Standardfehler oder einen der WIA_ERROR_XXX -Fehler zurück (beschrieben in der Microsoft Windows SDK-Dokumentation).

Hinweise

Die Funktion schreibt Daten aus einem minidriver-zugeordneten temporären Seitenpuffer in die Bilddatei, die vom WIA-Dienst geöffnet wird. Minidriver rufen diese Funktion in der Regel auf, nachdem sie eine Seite mit Daten erhalten haben, für die der Minitreiber einen temporären Puffer zugewiesen hat.

Diese Funktion ähnelt wiasWriteBufToFile, die verwendet werden kann, um einen Puffer von Bilddaten in jede Art von Bilddatei zu schreiben. Wenn ein WIA-Minidriver beabsichtigt, eine Seite mit Bilddaten in eine mehrseitige TIFF-Datei zu schreiben, einschließlich aller geeigneten Tags, IFD-Einträge (Image File Directory) und anderer Nichtimagedaten, sollte er diese Funktion anstelle von wiasWriteBufToFile aufrufen.

Der Ausdruck pmdtc-hFile> enthält das Handle für die Datei in TYMED_FILE -Übertragungen (und TYMED_MULTIPAGE_FILE). Dies kann verwendet werden, um direkt auf die Datei zuzugreifen, in die geschrieben wird.

Ein Beispiel für die Verwendung ist:

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

Wenn Sie jedoch erwägen, nur das Dateihandle in Ihrem TYMED_FILE und TYMED_MULTIPAGE_FILE Übertragungen zu verwenden (um Daten mithilfe des Dateihandles direkt in die Datei zu schreiben, anstatt wiasWritePageBufToFile aufzurufen), verwenden Sie wiasWriteBufToFile. Diese Funktion führt das Äquivalent aus:

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

Dies ist im Wesentlichen das, was Sie tun würden, wenn Sie das Dateihandle direkt verwenden würden. Der Vorteil des ersten Beispiels besteht darin, dass der Treiber nicht aktualisiert werden muss, wenn die Implementierung in einer zukünftigen WIA-Version geändert wird (z. B. wenn der WIA-Dienst intern Pipes anstelle von Dateien verwendet).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows Me und in Windows XP und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile wiamdef.h (wiamdef.h einschließen)
Bibliothek Wiaservc.lib
DLL Wiaservc.dll

Weitere Informationen

MINIDRV_TRANSFER_CONTEXT

wiasWriteBufToFile

wiasWritePageBufToStream