GenerateConsoleCtrlEvent 関数
呼び出しプロセスに関連付けられているコンソールを共有するコンソール プロセス グループに、指定された信号を送信します。
構文
BOOL WINAPI GenerateConsoleCtrlEvent(
_In_ DWORD dwCtrlEvent,
_In_ DWORD dwProcessGroupId
);
パラメーター
dwCtrlEvent [in]
生成される信号の種類。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
CTRL_C_EVENT 0 | Ctrl+C 信号を生成します。 この信号を特定のプロセス グループに限定することはできません。 dwProcessGroupId が 0 以外の場合、この関数は成功しますが、Ctrl+C 信号は、指定されたプロセス グループ内のプロセスによって受信されません。 |
CTRL_BREAK_EVENT 1 | Ctrl+Break 信号を生成します。 |
dwProcessGroupId [in]
信号を受信するプロセス グループの識別子。 CreateProcess 関数の呼び出しで CREATE_NEW_PROCESS_GROUP フラグが指定されると、プロセス グループが作成されます。 新しいプロセスのプロセス識別子は、新しいプロセス グループのプロセス グループ識別子でもあります。 プロセス グループには、ルート プロセスの子孫であるすべてのプロセスが含まれます。 呼び出しプロセスと同じコンソールを共有するグループ内のプロセスだけが信号を受信します。 つまり、グループ内のプロセスが新しいコンソールを作成した場合、そのプロセスは信号を受信せず、その子孫も受信しません。
このパラメーターが 0 の場合、呼び出しプロセスのコンソールを共有するすべてのプロセスで信号が生成されます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
GenerateConsoleCtrlEvent により、ターゲット グループ内のプロセスの制御ハンドラー関数が呼び出されます。 すべてのコンソールプロセスには、各プロセスのハンドラーの一覧には、ExitProcess 関数を呼び出すデフォルトのハンドラー関数が含まれています。 コンソール プロセスでは、SetConsoleCtrlHandler 関数を使用して、その他のハンドラー関数をインストールまたは削除できます。
SetConsoleCtrlHandler では、呼び出しプロセスが Ctrl+C 信号を無視する継承可能な属性を有効にすることもできます。 GenerateConsoleCtrlEvent がこの属性が有効になっているプロセスに Ctrl+C 信号を送信する場合、そのプロセスのハンドラー関数は呼び出されません。 Ctrl+BREAK 信号では、常にハンドラー関数が呼び出されます。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー | ConsoleApi2.h(WinCon.h 経由、Windows.h を含む) |
ライブラリ | Kernel32.lib |
[DLL] | Kernel32.dll |