ドライバー コードに GUID を含める
カーネル モード ドライバーで GUID を使用するには、以下の 2 つの操作を行う必要があります。
DEFINE_GUID マクロを再定義する Initguid.h ヘッダー ファイルを含めます。
Initguid.h ヘッダー ファイルは、(EXTERN 参照の宣言だけではなく) DEFINE_GUID マクロを再定義して GUID をインスタンス化します。 GUID をインスタンス化する必要があるドライバー ソース ファイルに、このヘッダー ファイルを含めます。 (ユーザー モード アプリケーションには、GUID 定義を含むヘッダー ファイルを含める前に、Objbase.h が含まれています)。
GUID を定義するヘッダー ファイルを含めます。
Initguid.h を含めるステートメントの後に、GUID 定義を含むヘッダー ファイルを含めます。 ドライバーには、システム提供のヘッダー ファイルやサード パーティのヘッダー ファイルなど、GUID 定義を含む複数のヘッダー ファイルが含まれることがあります。
次のコードの抜粋は、GUID を含めるステートメントのシーケンスを示しています。
:
// include system headers here such as wdm.h
#include <initguid.h>
// include system and driver-specific header files here that contain
// GUID definitions
...
上記のステートメントをドライバーの 1 つのモジュールに配置します。通常はメイン モジュールです。 上記のステートメントが存在する場合、ドライバーはシンボリック名を使用して GUID を参照します。