NCryptGetProperty 関数 (ncrypt.h)

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

構文

SECURITY_STATUS NCryptGetProperty(
  [in]  NCRYPT_HANDLE hObject,
  [in]  LPCWSTR       pszProperty,
  [out] PBYTE         pbOutput,
  [in]  DWORD         cbOutput,
  [out] DWORD         *pcbResult,
  [in]  DWORD         dwFlags
);

パラメーター

[in] hObject

プロパティを取得するオブジェクトのハンドル。 プロバイダー ハンドル (NCRYPT_PROV_HANDLE) またはキー ハンドル (NCRYPT_KEY_HANDLE) を指定できます。

[in] pszProperty

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

[out] pbOutput

プロパティ値を受け取るバッファーのアドレス。 cbOutput パラメーターには、このバッファーのサイズが含まれています。

バッファーに必要なサイズを計算するには、このパラメーターを NULL に設定 します。 必要なサイズ (バイト単位) は、 pcbResult パラメーターが指す場所で返されます。

[in] cbOutput

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

[out] pcbResult

pbOutput バッファーにコピーされたバイト数を受け取る DWORD 変数へのポインター。

pbOutput パラメーターが NULL の場合、バッファーに必要なサイズ (バイト単位) は、このパラメーターが指す場所に配置されます。

[in] dwFlags

関数の動作を変更するフラグ。 0 または次の値を指定できます。

意味
NCRYPT_PERSIST_ONLY_FLAG
このプロパティの組み込み値は無視し、キーのユーザー永続化プロパティのみを取得します。 永続化されたプロパティのデータの最大サイズは 、NCRYPT_MAX_PROPERTY_DATA バイトです。
NCRYPT_SILENT_FLAG
キー サービス プロバイダー (KSP) にユーザー インターフェイスが表示されないことを要求します。 プロバイダーが操作する UI を表示する必要がある場合、呼び出しは失敗し、KSP は NTE_SILENT_CONTEXT エラー コードを最後のエラーとして設定する必要があります。

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

意味
OWNER_SECURITY_INFORMATION
オブジェクトの所有者のセキュリティ識別子 (SID) を取得します。 getSecurityDescriptorOwner 関数を使用して、SECURITY_DESCRIPTOR構造体から所有者 SID を取得します。
GROUP_SECURITY_INFORMATION
オブジェクトのプライマリ グループの SID を取得します。 GetSecurityDescriptorGroup 関数を使用して、SECURITY_DESCRIPTOR構造体からグループ SID を取得します。
DACL_SECURITY_INFORMATION
随意アクセス制御リスト (DACL) を取得します。 getSecurityDescriptorSacl 関数を使用して、SECURITY_DESCRIPTOR構造体から DACL を取得します。
SACL_SECURITY_INFORMATION
システム アクセス制御リスト (SACL) を取得します。 getSecurityDescriptorDacl 関数を使用して、SECURITY_DESCRIPTOR構造体から SACL を取得します。

戻り値

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

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

リターン コード 説明
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