ConfigurePortUI 函数 (winsplp.h)

端口监视器 UI DLL 的 ConfigurePortUI 函数从用户获取端口配置信息,并将其发送到端口监视器服务器 DLL。

语法

BOOL WINAPI pfnConfigurePortUI(
  _In_opt_ PCWSTR pszServer,
  _In_     HWND   hWnd,
  _In_     PCWSTR pszPortName
);

参数

[in, optional] pszServer

调用方提供的指向表示服务器名称的字符串的指针;如果打印机是本地打印机,则 NULL。 (端口监视器可以忽略此参数。

[in] hWnd

应用作对话框的父窗口的调用方提供的句柄。 如果 NULL,则不应显示任何对话框。

[in] pszPortName

调用方提供的指向表示要配置的端口名称的字符串的指针。

返回值

如果作成功,函数应返回 true 。 否则,它应返回 FALSE。 如果作不受支持,或者由用户取消(选择 CANCEL 或选择 OK 而不更改配置参数),则该函数应调用 SetLastError(ERROR_CANCELLED),然后返回 FALSE

言论

需要端口监视器 UI DLL 才能定义 ConfigurePortUI 函数,并将函数的地址包含在 MONITORUI 结构中。

客户端的后台处理程序从 ConfigurePort 函数(Microsoft Windows SDK 文档中所述)调用 ConfigurePortUIConfigurePortUI 接收的参数是由 ConfigurePort接收的参数。

该函数应执行以下作:

  1. 调用 OpenPrinter,指定采用以下格式的打印机名称:
    \\ ServerName\,XcvPortPortName

    其中,ServerNamePortName 是作为 ConfigurePortUI 函数参数接收的服务器和端口名称。

    调用 OpenPrinter 需要一个PRINTER_DEFAULTS结构,该结构在 Windows SDK 文档中介绍。 必须将结构的 DesiredAccess 成员设置为SERVER_ACCESS_ADMINISTER。 其 pDatatypepDevMode 成员可以 NULL

    此调用会导致打印监视器服务器 DLL 的 XcvOpenPort 函数被调用。

  2. 通过显示对话框从用户获取端口配置参数。
  3. 调用 XcvData 一次或多次,指定自定义的数据名称字符串,以将每个配置参数发送到服务器 DLL。 每个 XcvData 调用都会调用服务器的 XcvDataPort 函数。
  4. 调用 ClosePrinter,指定从 OpenPrinter 接收的句柄。 这会导致调用服务器 DLL 的 XcvClosePort 函数。

要求

要求 价值
目标平台 桌面
标头 winsplp.h (包括 Winsplp.h)
NtosKrnl.exe

另请参阅

XcvOpenPort

XcvClosePort

XcvDataPort

XcvData