GetConsoleProcessList 函数

检索附加到当前控制台的进程列表。

语法

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

参数

lpdwProcessList [out]
指向缓冲区的指针,该缓冲区在成功时会接收进程标识符数组。 这必须是有效缓冲区,不能是 NULL。 缓冲区必须有空间来接收至少 1 个返回的进程 ID。

dwProcessCount [in]
可在 lpdwProcessList 缓冲区中存储的最大进程标识符数目。 此值必须大于 0。

返回值

如果函数成功,则返回值小于或等于 dwProcessCount,并表示存储在 lpdwProcessList 缓冲区中的进程标识符数目。

如果缓冲区太小,无法容纳全部有效的进程标识符,则返回值是所需的数组元素数目。 该函数将不会在缓冲区中存储任何标识符。 在这种情况下,请使用返回值来分配足够大的缓冲区,以存储整个列表并再次调用该函数。

如果返回值为零,则函数已失败,因为每个控制台至少有一个与之关联的进程。 要获得更多的错误信息,请调用 GetLastError

如果提供了 NULL 进程列表或进程计数为 0,则调用将返回 0,而 GetLastError 将返回 ERROR_INVALID_PARAMETER。 请提供至少有一个元素的缓冲区来调用此函数。 如果返回代码大于所提供缓冲区的长度,请分配更大的缓冲区并再次调用。

备注

若要编译使用此函数的应用程序,请将 _WIN32_WINNT 定义为 0x0501 或更高版本。 有关详细信息,请参阅使用 Windows 标头

提示

不建议使用此 API,并且此 API 没有虚拟终端等效项。 此决策有意使 Windows 平台与其他操作系统保持一致。 此状态仅与本地用户、会话以及特权上下文相关。 如果使用此 API,则通过跨平台实用工具和传输(例如 SSH)进行远程处理的应用程序可能无法正常工作。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 ConsoleApi3.h (via WinCon.h, include Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

AttachConsole

控制台函数