次の方法で共有


名前付きデバイス オブジェクト

すべてのオブジェクト マネージャー オブジェクトと同様に、デバイス オブジェクトは名前付きにすることも無名にすることもできます。 ユーザー モード アプリケーションでは、I/O 要求を発行するときにその操作対象を名前で指定します。 オブジェクト マネージャーは、この名前を解決して I/O 要求の対象を判断します。

重要

ドライバーのセキュリティ向上を図るために、デバイス オブジェクトには必要な場合にのみ名前を付けます。 一般的に、旧来の環境に対応する目的でのみ名前付きデバイス オブジェクトが必要になります。たとえば、特定の名前を使用してデバイスを開くアプリケーションや、PNP 以外のデバイスやコントロール デバイスを使用する場合が挙げられます。 WdfDeviceCreateSymbolicLink を使用してシンボリック リンクを作成する目的で、WDF ドライバーの PnP デバイスに名前を付ける必要はありません。

ドライバーでは、IoCreateDevice または IoCreateDeviceSecure を呼び出してデバイス オブジェクトを作成するときに、そのデバイス オブジェクトの名前を指定できます。 デバイス オブジェクトに名前を付ける条件と方法の詳細については「NT デバイス名」を参照してください。

名前付きデバイス オブジェクトには MS-DOS デバイス名を指定することもできます。この名前は、IoCreateSymbolicLink または IoCreateUnprotectedSymbolicLink で作成されたシンボリック リンクです。 一般的に、WDM ドライバーでは MS-DOS デバイス名を必要としません。 詳細については「MS-DOS デバイス名の概要」を参照してください。

重要

名前付きデバイス オブジェクトを使用する場合は、IoCreateDeviceSecure を使用し、SDDL を指定してそのオブジェクトをセキュリティで保護できます。 IoCreateDeviceSecure を実装する場合は、DeviceClassGuid のカスタム クラス GUID を必ず指定します。 その場合、既存クラスの GUID は指定しないでください。 指定すると、そのクラスに属する他のデバイスのセキュリティ設定や互換性が損なわれることがあります。 詳細については「WdmlibIoCreateDeviceSecure」を参照してください。

アプリケーションまたはその他の WDF ドライバーから PnP デバイスにアクセスできるようにするにはデバイス インターフェイスを使用する必要があります。 詳細については「デバイス インターフェイス (WDF) の使用」を参照してください。 デバイス インターフェイスは、デバイス スタックの PDO へのシンボリック リンクとして機能します。 PDO へのアクセスを制御する方法の 1 つとして、INF に SDDL 文字列を指定する方法があります。 INF ファイルに SDDL 文字列がない場合は、Windows によって既定のセキュリティ記述子が適用されます。 詳細については「デバイス アクセスの制御 (WDM)」と「デバイス オブジェクトを表す SDDL」を参照してください。

このセクションには、次のサブセクションが含まれています。

NT デバイス名

MS-DOS デバイス名