WdfDeviceCreateSymbolicLink 関数 (wdfdevice.h)
[KMDF と UMDF に適用]
WdfDeviceCreateSymbolicLink メソッドは、指定されたデバイスへのシンボリック リンクを作成します。
構文
NTSTATUS WdfDeviceCreateSymbolicLink(
[in] WDFDEVICE Device,
[in] PCUNICODE_STRING SymbolicLinkName
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in] SymbolicLinkName
デバイスのユーザーに表示される名前を含む UNICODE_STRING 構造体へのポインター。
戻り値
操作が成功した場合、 WdfDeviceCreateSymbolicLink はSTATUS_SUCCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
システムは、デバイス名を格納する領域を割り当てることができません。 |
メソッドは、他の 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 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |