GetConsoleProcessList 関数

現在のコンソールにアタッチされているプロセスのリストを取得します。

構文

DWORD WINAPI GetConsoleProcessList(
  _Out_ LPDWORD lpdwProcessList,
  _In_  DWORD   dwProcessCount
);

パラメーター

lpdwProcessList [out]
成功した場合にプロセス識別子の配列を受信するバッファーへのポインター。 これは有効なバッファーである必要があり、NULL ではあり得ません。 バッファーには、少なくとも 1 つの返されたプロセス ID を受信するスペースが必要です。

dwProcessCount [in]
lpdwProcessListバッファーに格納できるプロセス識別子の最大数。 これは 0 よりも大きな値にする必要があります。

戻り値

関数が成功した場合、戻り値は dwProcessCount 以下であり、lpdwProcessList バッファーに格納されているプロセス識別子の数を表します。

バッファーが小さすぎてすべての有効なプロセス識別子を保持できない場合は、戻り値は配列要素の必要な数です。 この関数は、バッファーに識別子を格納しません。 このような場合は、戻り値を使用して、リスト全体を格納して関数を再度呼び出すのに十分な大きさのバッファーを割り当てます。

戻り値が 0 の場合、すべてのコンソールに少なくとも 1 つのプロセスが関連付けられているため、関数は失敗しました。 詳細なエラー情報を得るには、GetLastError を呼び出します。

NULL プロセス リストが提供された場合、またはプロセス数が 0 の場合、呼び出しは 0 を返し、GetLastErrorERROR_INVALID_PARAMETER を返します。 この関数を呼び出すには、少なくとも 1 つの要素のバッファーを指定してください。 リターン コードが提供されたバッファーの長さを超える場合は、より大きなバッファーを割り当て、もう一度呼び出します。

解説

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を 0x0501 以降として定義します。 詳細については、「Windows ヘッダーの使用」を参照してください。

ヒント

この API は推奨されておらず、同等の 仮想ターミナル はありません。 この決定は、Windows プラットフォームを他のオペレーティング システムと意図的に調整します。 この状態は、ローカル ユーザー、セッション、および権限コンテキストにのみ関連します。 この API を使用している場合、クロスプラットフォーム ユーティリティや SSH などのトランスポートを介したアプリケーションのリモート処理は、想定どおりに動作しない可能性があります。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
ヘッダー ConsoleApi3.h(WinCon.h 経由、Windows.h を含む)
ライブラリ Kernel32.lib
[DLL] Kernel32.dll

関連項目

AttachConsole

コンソール関数