次の方法で共有


QueryContextAttributesW 関数 (sspi.h)

QueryContextAttributes (CredSSP) 関数を使用すると、トランスポート アプリケーションは、資格情報セキュリティ サポート プロバイダー (CredSSP) セキュリティ パッケージ に対して、セキュリティ コンテキストの特定の 属性 クエリを実行できます。

構文

KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(
  [in]  PCtxtHandle   phContext,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer
);

パラメーター

[in] phContext

クエリを実行するセキュリティ コンテキストへのハンドル。

[in] ulAttribute

返されるコンテキストの属性。 このパラメーターには、次のいずれかの値を指定できます。 特に指定しない限り、属性はクライアントとサーバーの両方に適用されます。

価値 意味
SECPKG_ATTR_C_ACCESS_TOKEN
0x80000012
pBuffer パラメーターには、現在のセキュリティ コンテキストのアクセス トークンを指定する SecPkgContext_AccessToken 構造体へのポインターが含まれています。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_C_FULL_ACCESS_TOKEN
0x80000082
pBuffer パラメーターには、現在のセキュリティ コンテキストのアクセス トークンを指定する SecPkgContext_AccessToken 構造体へのポインターが含まれています。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_CERT_TRUST_STATUS
0x80000084
pBuffer パラメーターには、証明書に関する信頼情報を指定する CERT_TRUST_STATUS 構造体へのポインターが含まれています。

この属性は、クライアントでのみサポートされます。

SECPKG_ATTR_CREDS
0x80000080
pBuffer パラメーターには、クライアント資格情報を指定する SecPkgContext_ClientCreds 構造体へのポインターが含まれています。

クライアント資格情報には、ユーザー名とパスワード、またはユーザー名とスマート カード PIN のいずれかを指定できます。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_CREDS_2
0x80000086
pBuffer パラメーターには、クライアント資格情報を指定する SecPkgContext_ClientCreds 構造体へのポインターが含まれています。

クライアント資格情報がユーザー名とパスワードの場合、バッファーはパックされた KERB_INTERACTIVE_LOGON 構造体です。

クライアント資格情報がユーザー名とスマート カード PIN の場合、バッファーはパックされた KERB_CERTIFICATE_LOGON 構造になります。

クライアント資格情報がオンライン ID 資格情報である場合、バッファーはマーシャリングされた SEC_WINNT_AUTH_IDENTITY_EX2 構造体です。

この属性は、CredSSP サーバーでのみサポートされます。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

SECPKG_ATTR_NEGOTIATION_PACKAGE
0x80000081
pBuffer パラメーターには、Microsoft Negotiate プロバイダーによってネゴシエートされる認証パッケージの名前を指定する SecPkgContext_PackageInfo 構造体へのポインターが含まれています。
SECPKG_ATTR_PACKAGE_INFO
10
pBuffer パラメーターには、SecPkgContext_PackageInfo 構造体へのポインターが含まれています。

使用中の SSP に関する情報を返します。

SECPKG_ATTR_SERVER_AUTH_FLAGS
0x80000083
pBuffer パラメーターには、現在のセキュリティ コンテキストのフラグに関する情報を指定する SecPkgContext_Flags 構造体へのポインターが含まれています。

この属性は、クライアントでのみサポートされます。

SECPKG_ATTR_SIZES
0x0
pBuffer パラメーターには、SecPkgContext_Sizes 構造体へのポインターが含まれています。

メッセージごとの関数と認証交換で使用される構造体のサイズを照会します。

SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
pBuffer パラメーターには、SecPkgContext_SubjectAttributes 構造体へのポインターが含まれています。

この値は、接続のセキュリティ属性に関する情報を返します。

この値は、CredSSP サーバーでのみサポートされます。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

[out] pBuffer

属性を受け取る構造体へのポインター。 構造体の型は、ulAttribute パラメーターの値によって異なります。

戻り値

関数が成功すると、SEC_E_OKが返されます。

関数が失敗した場合は、次のエラー コードを返すことができます。

戻りコード/値 形容
SEC_E_INVALID_HANDLE
0x80100003
関数が失敗しました。 phContext パラメーターは、不完全なコンテキストへのハンドルを指定します。
SEC_E_UNSUPPORTED_FUNCTION
0x80090302
関数が失敗しました。 ulAttribute パラメーターの値が無効です。

備考

pBuffer パラメーターが指す構造体は、クエリ対象の属性によって異なります。

呼び出し元は pBuffer 構造体自体を割り当てる必要があります。一方、SSP は、pBuffer 構造体の可変サイズのメンバーを保持するために必要なメモリを割り当てます。 SSP によって割り当てられたメモリは、FreeContextBuffer 関数を呼び出すことによって解放する必要があります。

手記

sspi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして QueryContextAttributes を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー sspi.h (Security.h を含む)
ライブラリ Secur32.lib
DLL Secur32.dll

関連項目

CERT_CONTEXT

FreeContextBuffer の

SSPI 関数の

SecPkgContext_ClientCreds

SecPkgContext_Sizes