次の方法で共有


EnumerateSecurityPackagesA 関数 (sspi.h)

EnumerateSecurityPackages 関数は、クライアントが使用できる セキュリティ パッケージに関する情報 提供する、SecPkgInfo 構造体の配列を返します。

構文

SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(
  [in] unsigned long *pcPackages,
  [in] PSecPkgInfoA  *ppPackageInfo
);

パラメーター

[in] pcPackages

システムで使用可能なパッケージの数を受け取る ULONG 変数へのポインター。 これには、既に読み込まれているパッケージとオンデマンドで使用できるパッケージが含まれます。

[in] ppPackageInfo

SecPkgInfo 構造体の配列へのポインターを受け取る変数へのポインター。 各構造体には、セキュリティ サポート プロバイダー (SSP) からの情報が含まれています。この情報には、その SSP 内で使用可能なセキュリティ パッケージの機能が記述されています。

配列の使用が完了したら、FreeContextBuffer 関数を呼び出してメモリを解放します。

戻り値

関数が成功した場合、関数は SEC_E_OKを返します。

関数が失敗すると、0 以外のエラー コードが返されます。 使用できる値には、次の表に示す値が含まれますが、これらに限定されません。

戻りコード/値 形容
SEC_E_INSUFFICIENT_MEMORY
0x80090300L
1 つ以上のバッファーを割り当てるのに十分なメモリが不足していました。
SEC_E_INVALID_HANDLE
0x80090301L
無効なハンドルが指定されました。
SEC_E_SECPKG_NOT_FOUND
0x80090305L
指定されたパッケージが見つかりませんでした。

備考

呼び出し元は、SecPkgInfo 構造体の Name メンバーを使用して、AcquireCredentialsHandle (General) 関数の呼び出しでセキュリティ パッケージを指定できます。

手記

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

必要条件

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

関連項目

AcquireCredentialsHandle (General)

FreeContextBuffer の

SSPI 関数の

SecPkgInfo