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 |
ヘッダー | wdfdevice.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |