自定义打印机端口监视器

可以通过自定义 Windows Vista 提供的适用于设备的标准 TCP/IP 或 Web 服务 (WSD) 端口监视器,为具有高于和超出标准 bidi 通信架构 的功能的打印设备定义新架构。 必须创建 bidi 扩展文件,这是一个 XML 文件,用于定义特定于该驱动程序的新架构。 安装驱动程序时会安装此扩展文件。 当 TCP/IP 或 WSD 端口监视器标识此扩展文件时,监视器会加载该文件,然后可以使用其他 bidi 架构。

bidi 扩展文件中的架构是标准打印架构的子集。 此类架构必须遵循随 WDK 一起提供的 Tcpbidi.xsd 或 WsdBidi.xsd 文件的结构。

注意 如果 bidi 通信架构 符合要求,则无需创建 bidi 扩展文件,因此无需自定义打印端口监视器。

如果以下任一条件适用,应创建 bidi 扩展文件并将其与打印机驱动程序相关联:

  1. 打印机驱动程序需要打印机中无法在标准打印架构中找到的信息。 若要获取此信息,必须使用其他查询扩展支持的架构。 枚举特定端口支持的架构的任何其他客户端都会获得其他查询,但通常无法理解它们。

  2. 你计划包括来自标准打印架构的查询,这些查询在标准 TCP/IP 或 WSD 端口监视器中不受支持,因为这些查询需要特定于驱动程序的信息。 在这种情况下,必须扩展打印架构。 通常,应扩展与打印媒体输入和输出箱相关的打印架构部分。 还应在 bidi 架构中定义的箱名称与打印机管理信息库 (MIB) 中的箱名之间提供映射。

  3. 你打算自定义标准查询的工作方式,例如通过设置自定义对象标识符 (OID) 或更改刷新间隔。 例如,标准 TCP/IP 端口监视器以 600 秒 (10 分钟) 的默认间隔轮询不支持 Web 服务事件的设备。 可以通过创建 bidi 扩展来更改轮询间隔,该扩展在与设备关联的 Value 构造中设置 refreshInterval 属性。 (请参阅 Memory 以下代码示例中的 属性。)

如果驱动程序没有关联的 bidi 扩展文件,则标准打印架构中的 bidi 通信支持无法响应需要特定于驱动程序的数据 (的查询,例如与输入和输出箱相关的数据) 。

注意 Windows Vista 中的网络路由隔离舱允许受信任的进程 (虚拟或物理) 连接到不同的网络接口,同时使各种接口彼此隔离。 例如,Windows Vista 使用这些隔离区来强制实施不允许同时访问 VPN 和用户的本地网络和 Internet 的 VPN 策略。 在打印期间,后台处理程序在打开 TCP 打印机端口时模拟用户。 因此,当用户连接到 VPN 时,后台处理程序无法打印到本地网络打印机。

Bidi 扩展文件的结构

bidi 扩展文件是格式正确的 XML,必须根据 Microsoft Windows 驱动程序工具包提供的 Tcpbidi.xsd 或 WsdBidi.xsd 文件有效, (WDK) 。 这些 .xsd 文件中定义的构造使你能够定义新架构。

下面是显示其基本结构的 TCP/IP bidi 扩展文件的不完整示例。 WSD bidi 扩展文件的结构类似。

<?xml version="1.0" encoding="US-ASCII"?>
<bidi:Schema xmlns:bidi="https://schemas.microsoft.com/windows/2005/03/printing/bidi">
  <Schema>
    <Property name="Printer">
      <Property name="Configuration">
        <Property name= "Memory">
          <Value name="Size" type="BIDI_INT" oid="1.3.6.1.2.1.25.2.2" refreshInterval="600" drvPrinterEvent="true" />
          .
          .
          .
        </Property>
      </Property>
    </Property>
  </Schema>
</bidi:Schema>

在前面的代码示例中,请注意:

  • Root 元素只包含一个 Schema 元素。 架构的层次结构以 Schema 元素开头。

  • Schema 元素将 Property 元素作为节点,将 Value 元素作为叶。

  • 每个 Value 元素都定义一种特定技术,以便检索数据。

将 WinSNMP 转换为 Bidi 数据类型

简单网络管理协议 (SNMP) 类型和 bidi 类型之间的对应关系在 BIDI_TYPE 枚举主题中提供。

本部分的其余部分包含以下主题,可帮助你创建自己的 bidi 架构扩展。

TCP/IP 架构扩展

WSD 架构扩展