GetUserObjectInformationA 函数 (winuser.h)

检索有关指定窗口工作站或桌面对象的信息。

语法

BOOL GetUserObjectInformationA(
  [in]            HANDLE  hObj,
  [in]            int     nIndex,
  [out, optional] PVOID   pvInfo,
  [in]            DWORD   nLength,
  [out, optional] LPDWORD lpnLengthNeeded
);

参数

[in] hObj

窗口工作站或桌面对象的句柄。 此句柄由 CreateWindowStationOpenWindowStationCreateDesktopOpenDesktop 函数返回。

[in] nIndex

要检索的信息。 参数可以是以下值之一。

含义
UOI_FLAGS
1
句柄标志。 pvInfo 参数必须指向 USEROBJECTFLAGS 结构。
UOI_HEAPSIZE
5
桌面堆的大小(以 KB 为单位)作为 ULONG 值。 hObj 参数必须是桌面对象的句柄,否则函数将失败。

Windows Server 2003 和 Windows XP/2000: 不支持此值。

UOI_IO
6
如果 hObj 参数是接收用户输入的桌面对象的句柄,则为 TRUE。 否则为 FALSE

Windows Server 2003 和 Windows XP/2000: 不支持此值。

UOI_NAME
2
对象的名称,以字符串形式表示。
UOI_TYPE
3
对象的类型名称,作为字符串。
UOI_USER_SID
4
标识当前与指定对象关联的用户的 SID 结构。 如果没有用户与对象关联,则 lpnLengthNeeded 指向的缓冲区中返回的值为零。 请注意, SID 是可变长度结构。 通常会调用 GetUserObjectInformation 以确定 SID 的长度,然后再检索其值。

[out, optional] pvInfo

指向用于接收对象信息的缓冲区的指针。

[in] nLength

pvInfo 参数指向的缓冲区的大小(以字节为单位)。

[out, optional] lpnLengthNeeded

指向一个变量的指针,该变量接收存储所请求信息所需的字节数。 如果在函数返回时此变量的值大于 nLength 参数的值,则函数返回 FALSE,并且不会将任何信息复制到 pvInfo 缓冲区。 如果 lpnLengthNeeded 指向的变量的值小于或等于 nLength 的值,则复制整个信息块。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

注意

winuser.h 标头将 GetUserObjectInformation 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 Windows 10版本 10.0.10240 中引入的 ext-ms-win-ntuser-windowstation-ansi-l1-1-0 ()

另请参阅

CreateDesktop

CreateWindowStation

GetUserObjectSecurity

OpenDesktop

OpenWindowStation

SID

SetUserObjectInformation

SetUserObjectSecurity

USEROBJECTFLAGS

窗口工作站和桌面函数