次の方法で共有


WlxActivateUserShell 関数 (winwlx.h)

[WlxActivateUserShell 関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。

ユーザー シェル プログラムをアクティブにします。

WlxActivateUserShell 関数は、代わりの GINA DLL によって実装する必要があります。 Winlogon は 、ログオンが成功した後にこの関数を呼び出して、GINA がユーザーのシェル プログラムをアクティブ化するように要求します。

メモ Windows Vista では GINA DLL は無視されます。
 

構文

BOOL WlxActivateUserShell(
  [in] PVOID pWlxContext,
  [in] PWSTR pszDesktopName,
  [in] PWSTR pszMprLogonScript,
  [in] PVOID pEnvironment
);

パラメーター

[in] pWlxContext

このウィンドウ ステーションに関連付けられている GINA コンテキストへのポインター。 これは、Winlogon がこのステーションの WlxInitialize を呼び出すときに GINA が返すコンテキスト値です。

[in] pszDesktopName

シェルが起動するデスクトップの名前を指定する null で終わるワイド文字列へのポインター。 STARTUPINFO 構造体の lpDesktop メンバーを使用して、この文字列を CreateProcess または CreateProcessAsUser 関数に渡します。

[in] pszMprLogonScript

ネットワーク プロバイダー DLL から返されるスクリプト名を指定する、null で終わるワイド文字列へのポインター。 ネットワーク プロバイダー DLL は、ログオン中に実行されるスクリプトを返すことができます。ただし、GINA はそれらを無視する可能性があります。

[in] pEnvironment

プロセスの初期環境変数を指定します。 Winlogon は環境のコピーを作成し、GINA に渡します。 GINA は、この環境を使用してユーザーのシェルを初期化する前に変更できます。 GINA は VirtualFree 関数を呼び出して、 pEnvironment に割り当てられたメモリを解放する必要があります。

戻り値

関数が正常にシェル プロセスを開始すると、関数は TRUE を返します。

関数が失敗した場合は、 FALSE を返します。 FALSE が返されると、Winlogon は処理中のログオンを取り消します。

解説

WlxActivateUserShell を呼び出す前に、Winlogon はデスクトップの状態を設定して、現在のデスクトップが Winlogon デスクトップになるようにし、デスクトップがロックされるようにワークステーションの状態を設定します。

WlxLoggedOutSAS ではなく、常に WlxActivateUserShell でユーザー シェル プログラムをアクティブにします。 これにより、ログオンしているユーザー プロセスの実行が許可される前に、ワークステーションとデスクトップ保護の設定など、Winlogon の状態を更新する機会が与えられます。

要件

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

関連項目

WlxInitialize

WlxLoggedOutSAS

WlxLogoff