次の方法で共有


プリンター ポート モニターをカスタマイズする

Windows Vista で提供される標準の TCP/IP または デバイス用ウェブサービス (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 サービス イベントをサポートしていないデバイスをポーリングします。 ポーリング間隔を変更するには、デバイスに関連付けられている Value コンストラクトで refreshInterval 属性を設定する bidi 拡張機能を作成します。 (例として、XAML で Memory プロパティについては以下を参照してください。)

ドライバーに関連する bidi 拡張ファイルがない場合、標準の印刷スキーマの bidi 通信サポートは、ドライバー固有のデータ (入力ビンと出力ビンに関連するデータなど) を必要とするクエリに応答できません。

注: Windows Vista のネットワーク ルーティング コンパートメントを使用すると、さまざまなインターフェイスを互いに分離したまま、信頼できるプロセスが異なるネットワーク インターフェイス (仮想インターフェイスでも物理インターフェイスでも) に接続できます。 たとえば、Windows Vista では、これらのコンパートメントを使用して、VPN とユーザーのローカル ネットワークとインターネットの両方への同時アクセスを許可しない VPN ポリシーを適用します。 印刷中、TCP プリンター ポートを開くときに、スプーラーはユーザーを偽装します。 そのため、ユーザーが VPN に接続されている間、スプーラーはローカル ネットワーク プリンターに印刷できません。

Bidi拡張ファイルの構造

bidi拡張ファイルは、Microsoft Windows ドライバーキット(WDK)付属のTcpbidi.xsd または WsdBidi.xsd に従い、有効な適格XMLです。 これらの .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要素が1つだけ含まれます。 スキーマの階層は、Schema 要素で始まります。

  • Schema 要素には、ノードとして Property 要素、リーフとして Value 要素があります。

  • 各 Value 要素は、データを取得できる特定の手法を定義します。

WinSNMP から Bidi データ型への変換

簡易ネットワーク管理プロトコル (SNMP) の種類と bidi の種類の対応は、BIDI_TYP E列挙トピックで説明しています。

このセクションのメインには、独自の bidi スキーマ拡張機能の作成に役立つ次のトピックが含まれています。

TCP/IP スキーマ拡張

WSDスキーマの拡張機能