NCryptCreateProtectionDescriptor 関数 (ncryptprotect.h)

NCryptCreateProtectionDescriptor 関数は、保護記述子オブジェクトへのハンドルを取得します。

構文

SECURITY_STATUS NCryptCreateProtectionDescriptor(
  [in]  LPCWSTR                  pwszDescriptorString,
  [in]  DWORD                    dwFlags,
  [out] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor
);

パラメーター

[in] pwszDescriptorString

Null で終わる Unicode 文字列。この文字列には、保護記述子の規則文字列またはルールの登録された表示名が含まれます。

表示名を指定し、この関数で関連付けられている保護記述子ルール文字列のレジストリを検索する場合は、 dwFlags パラメーターを NCRYPT_NAMED_DESCRIPTOR_FLAG に設定する必要があります。

[in] dwFlags

pwszDescriptorString 内の文字列が保護記述子の表示名を表すかどうかを示すフラグ。表示されている場合は、レジストリ内のどこに関数が関連付けられている保護規則文字列を検索する必要があるかを指定します。 次の値の組み合わせを設定できます。

  • pwszDescriptorString パラメーターに設定された値が表示名ではなく完全な保護記述子ルール文字列であることを示すには、dwFlags パラメーターをゼロ (0) に設定します。
  • 文字列が表示名であり、関連付けられた記述子ルール文字列と共に、 HKEY_LOCAL_MACHINE レジストリ ハイブにビットごとのビットごとの OR NCRYPT_NAMED_DESCRIPTOR_FLAG 値と NCRYPT_MACHINE_KEY_FLAG 値が保存されていることを示します。
  • 文字列が表示名であり、関連付けられている記述子文字列ルールと共にHKEY_CURRENT_USERレジストリ ハイブに保存されることを示すには、NCRYPT_NAMED_DESCRIPTOR_FLAG値のみを設定します。 つまり、現在のユーザー レジストリ ハイブを指定する一意のフラグはありません。
メモ 記述子規則を表示名に関連付け、両方をレジストリに保存するには、 NCryptRegisterProtectionDescriptorName 関数を呼び出します。
 

[out] phDescriptor

保護記述子オブジェクト ハンドルへのポインター。

戻り値

関数の成功または失敗を示す状態コードを返します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_INVALID_PARAMETER
phDescriptor パラメーターを NULL にすることはできません。

pwszDescriptorString パラメーターを NULL にすることはできません。また、空のスティングにすることはできません。

NTE_BAD_FLAGS
dwFlags パラメーターは 、NCRYPT_MACHINE_KEY_FLAG または NCRYPT_NAMED_DESCRIPTOR_FLAGする必要があります。
NTE_NO_MEMORY
登録済みの保護記述子文字列を取得するためにメモリを割り当てませんでした。
NTE_NOT_FOUND
pwszDescriptorString パラメーターで指定された保護記述子名が見つかりませんでした。

注釈

この関数によって作成される保護記述子オブジェクトは、記述子に関する情報を含む内部データ構造です。 直接使用することはできません。 ただし、アプリケーションでは、次の関数で返されるハンドルを使用できます。

次の例は、保護記述子ルールの文字列を示しています。
  • "SID=S-1-5-21-4392301 AND SID=S-1-5-21-3101812"
  • "SDDL=O:S-1-5-5-0-290724G:SYD:(A;;Ccdc;;;S-1-5-5-0-290724)(A;;Dc;;;WD)"
  • "LOCAL=user"
  • "LOCAL=machine"
  • "WEBCREDENTIALS=MyPasswordName"
  • "WEBCREDENTIALS=MyPasswordName,myweb.com"
NCryptRegisterProtectionDescriptorName 関数を使用すると、表示名をルール文字列に関連付け、両方をレジストリに保存できます。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ncryptprotect.h
Library NCrypt.lib
[DLL] NCrypt.dll

こちらもご覧ください

CNG DPAPI 関数