WdfDeviceInitAssignSDDLString 関数 (wdfdevice.h)
[KMDF にのみ適用]
WdfDeviceInitAssignSDDLString メソッドは、デバイスのセキュリティ設定を割り当てます。
構文
NTSTATUS WdfDeviceInitAssignSDDLString(
[in] PWDFDEVICE_INIT DeviceInit,
[in, optional] PCUNICODE_STRING SDDLString
);
パラメーター
[in] DeviceInit
WDFDEVICE_INIT構造体へのポインター。
[in, optional] SDDLString
Unicode 文字列を記述する UNICODE_STRING 構造体へのポインター。 この文字列は、セキュリティ記述子の SDDL 表現です。
戻り値
操作が成功した場合、 WdfDeviceInitAssignSDDLString はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
システムは、デバイス名を格納する領域を割り当てることができません。 |
注釈
ドライバーは、セキュリティ記述子定義言語 (SDDL) のサブセットを使用してセキュリティ設定を指定できます。 Wdmsec.h ファイルは、使用できるSDDL_DEVOBJ_XXX形式の定数のセットを定義します。 セキュリティ記述子と SDDL の詳細については、「 デバイス オブジェクトのセキュリティ保護」を参照してください。
システム管理者は、レジストリにセキュリティ記述子を追加することで、指定されたセキュリティ記述子をオーバーライドできます。 詳細については、「 IoCreateDeviceSecure」を参照してください。
WdfDeviceInitAssignSDDLString を呼び出す前に、ドライバーで WdfDeviceInitAssignName を呼び出すか、WdfDeviceInitSetCharacteristics を呼び出してFILE_AUTOGENERATED_DEVICE_NAMEを指定する必要があります。これは、名前のないデバイス オブジェクトのセキュリティ記述子を指定できないためです。
ドライバーが WdfDeviceInitAssignSDDLString を呼び出す場合は、 WdfDeviceCreate を呼び出す前に呼び出す必要があります。 WdfDeviceCreate の呼び出しの詳細については、「Framework デバイス オブジェクトの作成」を参照してください。
セキュリティの問題の詳細については、「 Framework-Based ドライバーのセキュリティの問題」を参照してください。
UMDF ドライバーを作成する場合は、スタックに適切なセキュリティ記述子を提供するようにドライバーの INF ファイルを変更する必要があります。 詳細については、「 デバイス オブジェクトのセキュリティ保護」を参照してください。 レジストリの使用方法の詳細については、「 インストール時のデバイス オブジェクト レジストリプロパティの設定」を参照してください。
例
次のコード例では、デバイスのセキュリティ設定を割り当てます。
NTSTATUS status;
status = WdfDeviceInitAssignSDDLString(
pDeviceInit,
&SDDL_DEVOBJ_SYS_ALL_ADM_ALL
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf)、InitFreeDeviceCallback(kmdf)、InitFreeDeviceCreate(kmdf)、InitFreeNull(kmdf)、KmdfIrql(kmdf)、KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、PdoDeviceInitAPI(kmdf)、PdoInitFreeDeviceCallback(kmdf)、PdoInitFreeDeviceCreate(kmdf) |