NCryptSetProperty 関数 (ncrypt.h)

NCryptSetProperty 関数は、CNG キー ストレージ オブジェクトの名前付きプロパティの値を設定します。

構文

SECURITY_STATUS NCryptSetProperty(
  [in] NCRYPT_HANDLE hObject,
  [in] LPCWSTR       pszProperty,
  [in] PBYTE         pbInput,
  [in] DWORD         cbInput,
  [in] DWORD         dwFlags
);

パラメーター

[in] hObject

プロパティを設定するキー ストレージ オブジェクトのハンドル。

[in] pszProperty

設定するプロパティの名前を含む null で終わる Unicode 文字列へのポインター。 これには、定義済みの キー ストレージ プロパティ識別子またはカスタム プロパティ識別子 のいずれかを指定できます。

[in] pbInput

新しいプロパティ値を含むバッファーのアドレス。 cbInput パラメーターには、このバッファーのサイズが含まれています。

[in] cbInput

pbInput バッファーのサイズ (バイト単位)。

[in] dwFlags

関数の動作を変更するフラグ。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。

意味
NCRYPT_PERSIST_FLAG
プロパティは、キーマテリアルと共にキーストレージに格納する必要があります。 このフラグは、 hObject パラメーターが永続化されたキーのハンドルである場合にのみ使用できます。 永続化されたプロパティのデータの最大サイズは 、NCRYPT_MAX_PROPERTY_DATA バイトです。
NCRYPT_PERSIST_ONLY_FLAG
このプロパティの組み込み値を上書きせず、キーのユーザー永続化プロパティのみを設定します。 永続化されたプロパティのデータの最大サイズは 、NCRYPT_MAX_PROPERTY_DATA バイトです。 このフラグは 、NCRYPT_SECURITY_DESCR_PROPERTY プロパティでは使用できません。
NCRYPT_SILENT_FLAG
キー サービス プロバイダー (KSP) にユーザー インターフェイスが表示されないことを要求します。 プロバイダーが操作する UI を表示する必要がある場合、呼び出しは失敗し、KSP は NTE_SILENT_CONTEXT エラー コードを最後のエラーとして設定する必要があります。
 

NCRYPT_SECURITY_DESCR_PROPERTY プロパティの場合、このパラメーターには、設定するセキュリティ記述子の部分を識別する次のいずれかの値も含める必要があります。

意味
OWNER_SECURITY_INFORMATION
オブジェクトの所有者の セキュリティ識別子 (SID) を設定します。 SetSecurityDescriptorOwner 関数を使用して、SECURITY_DESCRIPTOR構造体の所有者 SID を設定します。
GROUP_SECURITY_INFORMATION
オブジェクトのプライマリ グループの SID を設定します。 SetSecurityDescriptorGroup 関数を使用して、SECURITY_DESCRIPTOR構造体のグループ SID を設定します。
DACL_SECURITY_INFORMATION
随意アクセス制御リスト (DACL) を設定します。 setSecurityDescriptorDacl 関数を使用して、SECURITY_DESCRIPTOR構造体に DACL を設定します。
SACL_SECURITY_INFORMATION
システム アクセス制御リスト (SACL) を設定します。 setSecurityDescriptorSacl 関数を使用して、SECURITY_DESCRIPTOR構造体の SACL を設定します。
LABEL_SECURITY_INFORMATION
オブジェクトの SACL に必須のラベル アクセス制御エントリを設定します。 setSecurityDescriptorSacl 関数を使用して、SECURITY_DESCRIPTOR構造体の SACL を設定します。 必須のラベル アクセス制御エントリの詳細については、「 Windows 整合性メカニズムの設計」を参照してください。

戻り値

関数の成功または失敗を示す状態コードを返します。

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターに無効な値が含まれています。
NTE_INVALID_HANDLE
hObject パラメーターが無効です。
NTE_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
NTE_NO_MEMORY
メモリ割り当てエラーが発生しました。
NTE_NOT_SUPPORTED
指定したプロパティは、 オブジェクトではサポートされていません。

注釈

サービスは 、StartService 関数からこの関数を呼び出してはなりません。 サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答を停止する可能性があります。

要件

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