次の方法で共有


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

ユーザーの認証情報が正当であるかどうかを判断しながら、作成されたすべてのログオン セッションをクリーンアップします。

認証が失敗した場合、認証パッケージは関連するすべてのログオン セッションを削除する必要があります。

構文

LSA_DELETE_LOGON_SESSION LsaDeleteLogonSession;

NTSTATUS LsaDeleteLogonSession(
  [in] PLUID LogonId
)
{...}

パラメーター

[in] LogonId

削除するログオン セッションのセッション ID を含む LUID 構造体へのポインター。

戻り値

関数が成功した場合、戻り値はSTATUS_SUCCESS。

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

リターン コード 説明
STATUS_BAD_LOGON_SESSION_STATE
指定されたログオン セッションには参照カウント値があり、削除できません。 これは、オペレーティング システムと認証パッケージの両方がログオン セッションに対する権限を持っていると信じて引き起こされる深刻な問題です。
STATUS_NO_SUCH_LOGON_SESSION
指定されたログオン セッションが見つかりませんでした。
 

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

注釈

ログオン セッションはカーネル内のメモリを使い切るため、未使用または破棄されたログオン セッションはすべて削除する必要があります。 ただし、セッションのログオン ID が LSA に返された後は、ログオン セッションを削除しないでください。 LSA にログオン ID が与えられた後 ( LsaApLogonUser 呼び出しの結果など)、LSA はログオン セッションを担当すると見なし、オペレーティング システムで不要になったときに削除します。 現時点では、LSA は LsaApLogonTerminated を呼び出して、セッションが削除されたことを認証パッケージに通知します。

これに対し、 DeleteLogonSession を使用してログオン セッションが削除されると、認証パッケージには通知されません。

要件

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

こちらもご覧ください

CreateLogonSession

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE