FaxDevVirtualDeviceCreation 関数 (faxdev.h)

FAX サービスは、初期化中に FaxDevVirtualDeviceCreation 関数を 呼び出して、FAX サービス プロバイダー (FSP) が仮想 FAX デバイスを提示できるようにします。 仮想 FAX デバイスを FAX サービスに提示する各 FSP は、 FaxDevVirtualDeviceCreation 関数をエクスポートする必要があります。

構文

BOOL FaxDevVirtualDeviceCreation(
  [out] LPDWORD   DeviceCount,
  [out] LPWSTR    DeviceNamePrefix,
  [out] LPDWORD   DeviceIdPrefix,
  [in]  HANDLE    CompletionPort,
  [in]  ULONG_PTR CompletionKey
);

パラメーター

[out] DeviceCount

型: LPDWORD

FAX サービスが FSP 用に作成する必要がある仮想 FAX デバイスの数を受け取る符号なし DWORD 変数へのポインター。 FSP がこのパラメーターを 0 に設定すると、プロバイダーの初期化は失敗します。

[out] DeviceNamePrefix

種類: LPWSTR

null で終わる Unicode 文字列を受け取る変数へのポインター。128 WCHAR 文字に制限されます。 FSP では、この文字列を仮想 FAX デバイスの名前プレフィックスに設定する必要があります。 FAX サービスは、 DeviceIdPrefix パラメーターの値をこの文字列に追加します。 結果は、FAX サービスによって作成される仮想 FAX デバイスごとに一意のデバイス名になります。

[out] DeviceIdPrefix

型: LPDWORD

0 以外の値を受け取る符号なし DWORD 変数へのポインター。 FSP は、このメンバーを仮想 FAX デバイスを識別する一意の数値に設定する必要があります。 FAX サービスは、最初の仮想デバイスの 0 から始まる連続する番号にこの値を追加します。 結果は、FAX サービスによって作成される仮想 FAX デバイスごとに一意のデバイス識別子になります。

[in] CompletionPort

型: HANDLE

非同期回線状態イベントのために、FSP が I/O 完了ポート パケットを FAX サービスにポストするために使用する必要があるハンドルを指定します。 現在、 FaxDevVirtualDeviceCreation 関数は、着信呼び出しを通知するイベントのみをサポートしています。

完了ポート パケットは TAPI 2.x LINEMESSAGE 構造体である必要があります。 FSP は 、LocalAlloc(LPTR, sizeof(LINEMESSAGE)) を使用して構造体のメモリを割り当てる必要があります。 FAX サービス プロバイダーは、割り当てられたメモリのサイズ (この場合は sizeof(LINEMESSAGE) ) を PostQueuedCompletionStatus メソッドの dwNumberOfBytesTransferred パラメーターに渡す必要があります。 FAX サービスは、完了パケット構造に割り当てられたすべてのメモリを解放します。

FSP では、 構造体のメンバーを次のように設定する必要があります。

メンバー 内容
hDevice FaxDevStartJob から DeviceId に設定する
dwMessageID 0 に設定
dwCallbackInstance 0 に設定
dwParam1 を LINEDEVSTATE_RINGING に設定する
dwParam2 0 に設定
dwParam1 0 に設定
 

行ステータス イベントの詳細については、TAPI ドキュメントの 「LINEDEVSTATE_定数 」を参照してください。 I/O 完了ポートの詳細については、「 I/O 完了ポート」を参照してください。

[in] CompletionKey

種類: ULONG_PTR

入力候補キーの値を指定します。 プロバイダーが完了ポート パケットを FAX サービスにポストする場合、FSP はこの値を使用する必要があります。 FSP は、この不透明な値を PostQueuedCompletionStatus 関数に 渡す必要があります。

戻り値

種類: BOOL

関数が成功した場合、戻り値は 0 以外の値になります。

関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するために、FAX サービスは GetLastError を呼び出します。

解説

FAX サービスは、初期化中に FSP DLL で FAXDevVirtualDeviceCreation 関数を 確認します。 FSP が関数をエクスポートする場合、FAX サービスは、プロバイダーが仮想 FAX デバイスを提示することを前提としています。 FAX サービスは、物理 FAX デバイスを処理するのと同じ方法で仮想 FAX デバイスを処理します。 初期化後は、仮想 FAX デバイスを提示する FSP の機能または操作と、それらを提示しない機能に違いはありません。

FSP が物理 FAX デバイスを使用する場合、TAPI とテレフォニー サービス プロバイダー (TSP) は FAX サービスのデバイスを列挙します。 FSP に物理 FAX デバイスが存在せず、仮想 FAX デバイスのみが表示される場合、TSP は存在せず、TAPI はデバイスを列挙しません。 この場合、 FaxDevVirtualDeviceCreation は FAX サービスの仮想 FAX デバイス列挙を提供します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー faxdev.h

関連項目

完了パケットの作成

FAX サービス プロバイダー関数

FaxDevInitialize

FaxDevStartJob

LINEMESSAGE

PostQueuedCompletionStatus

仮想デバイスを使用して FAX を送信する

FAX サービス プロバイダー API の使用

仮想 FAX デバイス