LSA_GET_CREDENTIALS コールバック関数 (ntsecpkg.h)

ログオン セッションに関連付けられている資格情報を取得します。

この関数は、Kerberos などの新しい認証パッケージでは使用されません。

構文

LSA_GET_CREDENTIALS LsaGetCredentials;

NTSTATUS LsaGetCredentials(
  [in]      PLUID LogonId,
  [in]      ULONG AuthenticationPackage,
  [in, out] PULONG QueryContext,
  [in]      BOOLEAN RetrieveAllCredentials,
  [in, out] PLSA_STRING PrimaryKeyValue,
  [out]     PULONG PrimaryKeyLength,
  [out]     PLSA_STRING Credentials
)
{...}

パラメーター

[in] LogonId

資格情報の取得元となるログオン セッションのセッション ID を含む LUID 構造体へのポインター。

[in] AuthenticationPackage

呼び出し元の認証パッケージの認証パッケージ ID。 認証パッケージは、独自の資格情報のみを取得する必要があります。

[in, out] QueryContext

複数の資格情報を取得するために連続する呼び出しで使用される符号なし LONG 値へのポインター。 この関数を初めて使用するときは、この引数が指す値を 0 にする必要があります。 その後、この値は更新され、中断された場所で取得を続行できるようになります。 したがって、この値は、特定のクエリ操作のすべての資格情報が取得されるまで変更しないでください。

[in] RetrieveAllCredentials

指定したログオン セッションのすべての資格情報を取得するか (TRUE)、または指定した PrimaryKeyValue (FALSE) に一致する資格情報のみを取得するかを示します。

[in, out] PrimaryKeyValue

このパラメーターは、2 つの目的を果たします。 RetrieveAllCredentials パラメーターがFALSE の場合、この文字列には主参照キーとして使用する値が含まれます。 この場合、この値に一致する主参照キーを持つ正しいログオン セッションに属する資格情報のみが取得されます。

RetrieveAllCredentialsTRUE の場合、入力時のこの文字列の値は無視され、取得された各資格情報の主参照キーがこの文字列で返されます。

[out] PrimaryKeyLength

RetrieveAllCredentials パラメーターが TRUE の場合、このパラメーターは PrimaryKeyValue 文字列を格納するために必要な長さを受け取ります。

[out] Credentials

取得した資格情報を受け取るバッファーへのポインター。 呼び出しごとに取得される資格情報は 1 つだけです。 資格情報は、 AllocateLsaHeap 関数を呼び出すことによって関数が割り当てるバッファーで返されます。 FreeLsaHeap を呼び出すことによって、資格情報バッファーが不要になったら解放するのは呼び出し元の責任です。

戻り値

関数が成功した場合、この関数は NTSTATUS コード STATUS_SUCCESSを返し、資格情報が正常に取得されたことを示します。

関数が失敗した場合、戻り値は NTSTATUS コードであり、次の値のいずれか、または LSA ポリシー関数の戻り値のいずれかになります。

リターン コード 説明
ERROR_GEN_FAILURE
これ以上の資格情報は使用できません。 このコードが最初の呼び出しで返された場合、選択条件に一致する資格情報はありません。
STATUS_MORE_ENTRIES
PrimaryKeyValue を受け取るために指定された文字列は、データを保持するのに十分な大きさではありません。 この場合、データは取得されず、 QueryContext 値は変更されません。 これにより、より大きな文字列バッファーを使用して同じ呼び出しを再度実行できます。
STATUS_NO_SUCH_LOGON_SESSION
指定されたログオン セッションが見つかりませんでした。
 

LsaNtStatusToWinError 関数は、NTSTATUS コードを Windows エラー コードに変換します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntsecpkg.h

こちらもご覧ください

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE