次の方法で共有


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を返します。 その他の戻り値は次のとおりです。

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

注釈

ドライバーは、セキュリティ記述子定義言語 (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)