PFAXDEVSTARTJOB
コールバックシグネチャ
BOOL PFAXDEVSTARTJOB(
DWORD param0,
DWORD param1,
HANDLE* param2,
HANDLE param3,
UINT_PTR param4
);パラメーター
| フィールド | 型 |
|---|---|
| param0 | DWORD |
| param1 | DWORD |
| param2 | HANDLE* |
| param3 | HANDLE |
| param4 | UINT_PTR |
公式ドキュメント
FAX サービスは、新しい FAX ジョブを初期化するために FaxDevStartJob 関数を呼び出します。また FAX サービスは、各 FAX 操作の開始を FAX サービスプロバイダー (FSP) に通知するためにも FaxDevStartJob を呼び出します。各 FSP は FaxDevStartJob 関数をエクスポートする必要があります。
戻り値
型: BOOL
関数が成功した場合、戻り値は 0 以外の値です。
関数が失敗した場合、戻り値は 0 です。拡張エラー情報を取得するために、FAX サービスは GetLastError を呼び出します。
解説(Remarks)
FaxDevStartJob 関数は、FAX サービスプロバイダーが呼び出しのセットアップを行う機会を提供します。
FAX サービスは、新しい FAX ジョブの開始時と、各 FAX 操作につき 1 回ずつ FaxDevStartJob を呼び出します。これは、各操作が別々のスレッドで実行されるためです。FAX 送信操作では FaxDevSend 関数の呼び出しの直前に、FAX 受信操作では FaxDevReceive 関数の呼び出しの直前に呼び出されます。詳細については、Operating in a Multithreaded Environment を参照してください。
FSP は、自身の状態が変化したときに I/O 完了パケットを作成し、PostQueuedCompletionStatus 関数を呼び出す必要があります。状態変化の例としては、FSP が FAX 送信ページの受信または送信を完了した場合があります。完了パケットは FAX_DEV_STATUS 構造体である必要があります。FSP は、FaxDevInitialize 関数に渡された HeapHandle パラメーターが示すヒープから、この構造体用のメモリを割り当てる必要があります。FAX サービスプロバイダーは、割り当てたメモリのサイズを PostQueuedCompletionStatus メソッドの dwNumberOfBytesTransferred パラメーターに渡す必要があります。完了パケット構造体用に割り当てられたメモリは、FAX サービスが解放します。
FSP は、FSP の状態変化に関する完了パケットを送信するために、CompletionPortHandle パラメーターと CompletionKey パラメーターを使用する必要があります。この状態通知の方法では、FAX サービスが最新の状態情報を得るために FSP をポーリングする必要がないため、パフォーマンスが最適化されます。詳細については、Creating a Completion Packet を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)