NT デバイス名
名前付きデバイス オブジェクトには、形式 \Device\DeviceName による名前があります。 これは、デバイス オブジェクトの NT デバイス名と呼ばれます。
WDM ドライバーのデバイス名
デバイス オブジェクトに、その WDM ドライバーによって直接名前が付けられることはありません。 ドライバーどうしでデバイス名が競合しないように、統一された名前付けスキームがシステムによって適用されます。 WDM ドライバーの名前付けスキームは次のとおりです。
デバイスの PDO に名前が付けられます。 バス ドライバーは、それが列挙するデバイスに名前付き PDO を要求します。 バス ドライバーは、デバイス オブジェクトを作成するときに、そのデバイスの特性として FILE_AUTOGENERATED_DEVICE_NAME を指定します。 詳細については「デバイスの特性の指定」を参照してください。 つづいて、システムによってデバイス名が自動的に生成されます。
FDO とフィルター DO には名前が付けられません。 ファンクション ドライバーとフィルター ドライバーは、デバイス オブジェクトの作成時に名前を要求しません。
名前付きデバイス オブジェクトに対するどのような I/O 要求も、自動的にそのデバイス オブジェクトのスタックで最上位オブジェクトに置かれます。 したがって、PDO にのみ名前を付ける必要があります。 ユーザー モード アプリケーションは、WDM デバイス オブジェクトを名前では参照しません。代わりに、デバイス インターフェイスを通じてデバイス オブジェクトにアクセスします。 詳細については「デバイス インターフェイス クラスの概要」を参照してください。
ドライバーの作者は、デバイス スタックで複数のオブジェクトに名前を付けないようにする必要があります。 名前付きオブジェクトに基づき、オペレーティング システムによってセキュリティ設定が確認されます。 2 つの異なるオブジェクトに名前が付いていて、そのセキュリティ記述子が異なる場合、弱いほうのセキュリティ記述子を持つオブジェクトに送信された I/O 要求が、強いほうのセキュリティ記述子を持つデバイス オブジェクトに振り向けられる可能性があります。
WDM 以外のドライバーのデバイス名
WDM 以外のドライバーでは、名前付きデバイス オブジェクトの名前を明示的に指定する必要があります。 そのドライバーが I/O 要求を受信するには、\Device オブジェクト ディレクトリに 1 つ以上の名前付きデバイス オブジェクトを作成する必要があります。 ドライバーは、デバイス オブジェクトを作成するときに、IoCreateDeviceSecure に DeviceName パラメーターとしてデバイス名を指定します。