FaxDevVirtualDeviceCreation 函数 (faxdev.h)

传真服务在初始化期间调用 FaxDevVirtualDeviceCreation 函数,以允许传真服务提供商 (FSP) 呈现虚拟传真设备。 向传真服务提供虚拟传真设备的每个 FSP 都必须导出 FaxDevVirtualDeviceCreation 函数。

语法

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

参数

[out] DeviceCount

类型: LPDWORD

指向未签名 的 DWORD 变量的指针,该变量接收传真服务必须为 FSP 创建的虚拟传真设备的数量。 如果 FSP 将此参数设置为零,则提供程序的初始化将失败。

[out] DeviceNamePrefix

类型: LPWSTR

指向一个变量的指针,该变量接收以 null 结尾的 Unicode 字符串,限制为 128 个 WCHAR 字符。 FSP 必须将此字符串设置为虚拟传真设备的名称前缀。 传真服务将 DeviceIdPrefix 参数的值追加到此字符串。 结果是传真服务创建的每个虚拟传真设备的唯一设备名称。

[out] DeviceIdPrefix

类型: LPDWORD

指向接收非零值的无符号 DWORD 变量的指针。 FSP 必须将此成员设置为标识虚拟传真设备的唯一数值。 对于第一个虚拟设备,传真服务将此值添加到从零开始的序列号。 结果是传真服务创建的每个虚拟传真设备的唯一设备标识符。

[in] CompletionPort

类型: 句柄

指定 FSP 必须使用该句柄将 I/O 完成端口数据包发布到传真服务,以便进行异步行状态事件。 目前, FaxDevVirtualDeviceCreation 函数仅支持发出传入呼叫信号的事件。

完成端口数据包必须是 TAPI 2.x LINEMESSAGE 结构。 FSP 必须为 具有 LocalAlloc (LPTR、size 为 (LINEMESSAGE) ) 的结构分配内存。 在这种情况下,传真服务提供商必须将分配 (的内存大小 (LINEMESSAGE) ) 传递给 PostQueuedCompletionStatus 方法的 dwNumberOfBytesTransferred 参数。 传真服务释放为完成数据包结构分配的任何内存。

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

指定完成键值。 当提供程序将完成端口数据包发布到传真服务时,FSP 必须使用此值。 FSP 应将此不透明值传递给 PostQueuedCompletionStatus 函数。

返回值

类型: BOOL

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 若要获取扩展错误信息,传真服务会调用 GetLastError。

备注

传真服务在初始化期间检查 FSP DLL 中 是否有 FaxDevVirtualDeviceCreation 函数。 如果 FSP 导出函数,则传真服务会假定提供程序将提供虚拟传真设备。 传真服务处理虚拟传真设备的方式与处理物理传真设备的方式相同。 初始化后,显示虚拟传真设备的 FSP 与不提供虚拟传真设备的 FSP 的功能或操作之间没有区别。

当 FSP 使用物理传真设备时,TAPI 和电话服务提供商 (TSP) 枚举传真服务的设备。 如果 FSP 没有物理传真设备,并且它仅提供虚拟传真设备,则 TSP 将不存在,TAPI 不会枚举这些设备。 在此实例中, FaxDevVirtualDeviceCreation 提供传真服务的虚拟传真设备枚举。

要求

   
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 faxdev.h

请参阅

创建完成数据包

传真服务提供商函数

FaxDevInitialize

FaxDevStartJob

LINEMESSAGE

PostQueuedCompletionStatus

使用虚拟设备传输传真

使用传真服务提供商 API

虚拟传真设备