次の方法で共有


WdfDeviceCreateSymbolicLink 関数 (wdfdevice.h)

[KMDF と UMDF に適用]

WdfDeviceCreateSymbolicLink メソッドは、指定したデバイスへのシンボリック リンクを作成します。

構文

NTSTATUS WdfDeviceCreateSymbolicLink(
  [in] WDFDEVICE        Device,
  [in] PCUNICODE_STRING SymbolicLinkName
);

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] SymbolicLinkName

デバイスのユーザーに表示される名前を含む UNICODE_STRING 構造体へのポインター。

戻り値

操作が成功した場合、WdfDeviceCreateSymbolicLink はSTATUS_SUCCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 形容
STATUS_INSUFFICIENT_RESOURCES
システムは、デバイス名を格納する領域を割り当てることができません。
 

このメソッドは、NTSTATUS 値を返す場合があります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

備考

ドライバーがデバイスのシンボリック リンクを作成する場合、アプリケーションはシンボリック リンク名を使用してデバイスにアクセスできます。 通常、フレームワーク ベースのドライバーは、シンボリック リンクを提供する代わりに、アプリケーションがデバイスへのアクセスに使用できる デバイス インターフェイスを提供します。

デバイスが予期せず削除された場合 (突然削除)、フレームワークはデバイスへのシンボリック リンクを削除します。 ドライバーは、デバイスの新しいインスタンスのシンボリック リンク名を使用できます。

KMDF ドライバーの次のコード例では、アプリケーションがデバイスへのアクセスに使用できる MS-DOS デバイス名 を作成します。

#define DOS_DEVICE_NAME  L"\\DosDevices\\MyDevice"
DECLARE_CONST_UNICODE_STRING(dosDeviceName, DOS_DEVICE_NAME);
NTSTATUS  status;

status = WdfDeviceCreateSymbolicLink(
                                     controlDevice,
                                     &dosDeviceName
                                     );
if (!NT_SUCCESS(status)) {
    goto Error;
}

次のコード例に示すように、UMDF ドライバーは、グローバル DosDevices 名前空間にシンボリック リンク名を指定する必要があります。

#define DOS_DEVICE_NAME  L"\\DosDevices\\Global\\MyDevice"
DECLARE_CONST_UNICODE_STRING(dosDeviceName, DOS_DEVICE_NAME);
NTSTATUS  status;

status = WdfDeviceCreateSymbolicLink(
                                     controlDevice,
                                     &dosDeviceName
                                     );
if (!NT_SUCCESS(status)) {
    goto Error;
}

グローバル名前空間とローカル \DosDevices 名前空間の詳細については、「ローカルおよびグローバル MS-DOS デバイス名の」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
UMDF の最小バージョン する 2.0
ヘッダー wdfdevice.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

UNICODE_STRING