添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

このブラウザーはサポートされなくなりました。

Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

Microsoft Edge をダウンロードする Internet Explorer と Microsoft Edge の詳細情報

ドライバーが他のシステム コンポーネント、ドライバー、またはアプリケーションにエクスポートする項目の新しい GUID を定義します。 たとえば、いずれかのデバイスでカスタム PnP イベントの新しい GUID を定義します。 新しい GUID を定義してエクスポートするには、次の操作を行う必要があります。

  • GUID のシンボリック名を選択します。

    GUID の目的を表す名前を選択します。 たとえば、オペレーティング システムでは、GUID_BUS_TYPE_PCIやPARPORT_WMI_ALLOCATE_FREE_COUNTS_GUIDなどの名前が使用されます。

  • Uuidgen.exeまたはGuidgen.exeを使用して GUID の値を生成します。 Microsoft Windows SDKをインストールすると、Uuidgen.exeが自動的にインストールされます。 Guidgen.exeは、 Microsoft Exchange Server GUID ジェネレーター のダウンロード ページから入手できます。

    これらのユーティリティは、128 ビット値を表す一意の書式設定された文字列を生成します。 Uuidgen.exeの "-s" スイッチは、C 構造体として書式設定された GUID を出力します。

  • 適切なヘッダー ファイルで GUID を定義します。

    DEFINE_GUID マクロ (Guiddef.h で定義) を使用して、GUID シンボリック名とその値を関連付けます (例 1 を参照)。

    例 1: GUID-Only ヘッダー ファイルでの GUID の定義

    DEFINE_GUID( GUID_BUS_TYPE_PCMCIA, 0x09343630L, 0xaf9f, 0x11d0, 0x92,0x9f, 0x00, 0xc0, 0x4f, 0xc3, 0x40, 0xb1 ); DEFINE_GUID( GUID_BUS_TYPE_PCI, 0xc8ebdfb0L, 0xb510, 0x11d0, 0x80,0xE9, 0x00, 0x00, 0xf8, 0x1e, 0x1b, 0x30 );

    GUID 定義以外のステートメントを含むヘッダー ファイルで GUID が定義されている場合は、ヘッダー ファイルを含むドライバーで GUID がインスタンス化されるように、追加の手順を実行する必要があります。 DEFINE_GUID ステートメントは、複数の包含を妨げる #ifdef ステートメントの外部で実行する必要があります。 それ以外の場合、ヘッダー ファイルがプリコンパイル済みヘッダーに含まれている場合、GUID はヘッダー ファイルを使用するドライバーではインスタンス化されません。 混合ヘッダー ファイルのサンプル GUID 定義については、例 2 を参照してください。

    例 2: 混合ヘッダー・ファイルでの GUID の定義

    #ifndef _NTDDSER_    // this ex. is from a serial driver .h file
    #define _NTDDSER_
    // Put other header file definitions here.
    #endif  // _NTDDSER_
    #ifdef DEFINE_GUID   // Do not break compiles of drivers that 
                         // include this header but that do not
                         // want the GUIDs.
    // Put GUID definitions outside of the multiple inclusion 
    // protection.
    DEFINE_GUID(GUID_CLASS_COMPORT, 0x86e0d1e0L, 0x8089, 0x11d0, 0x9c,
        0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
    DEFINE_GUID (GUID_SERENUM_BUS_ENUMERATOR, 0x4D36E978, 0xE325, 
        0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
    #endif  // DEFINE_GUID
    

    複数のインクルードを防止するステートメントの外部に GUID 定義を配置しても、GUID がEXTERN_C変数 として定義DEFINE_GUID ので、ドライバーに GUID の複数のインスタンスが発生することはありません。 型が一致する限り、EXTERN 変数の複数の宣言が許可されます。

  • 新しい デバイス セットアップ クラスまたはデバイスインターフェイス クラスの GUID を作成する場合、次の規則が適用されます。

  • 1 つの GUID を使用して、デバイス セットアップ クラスとデバイス インターフェイス クラスの両方を識別しないでください。

  • GUID に関連付けるシンボリック名を作成する場合は、次の規則を使用します。

    デバイス セットアップ クラスの場合は、GUID_DEVCLASS_XXX 形式を使用します

    デバイス インターフェイス クラスの場合は、GUID_DEVINTERFACE_XXX 形式を使用します

  •