IoGetContainerInformation 函数 (wdm.h)

IoGetContainerInformation 例程提供有关用户会话的当前状态的信息。

语法

NTSTATUS IoGetContainerInformation(
  [in]           IO_CONTAINER_INFORMATION_CLASS InformationClass,
  [in, optional] PVOID                          ContainerObject,
  [in, out]      PVOID                          Buffer,
  [in]           ULONG                          BufferLength
);

参数

[in] InformationClass

指定调用方 (驱动程序) 请求信息的事件类。 将此参数设置为以下 IO_CONTAINER_INFORMATION_CLASS 枚举值:

  • IoSessionStateInformation
有关更多信息,请参见下面的“备注”部分。

[in, optional] ContainerObject

指向 I/O 管理器提供的不透明系统对象的指针。 对于 InformationClass = IoSessionStateInformation,请将此参数设置为 I/O 管理器在调用驱动程序的 IO_SESSION_NOTIFICATION_FUNCTION 函数期间提供的 SessionObject 参数值。

[in, out] Buffer

指向调用方分配的缓冲区的指针,此例程在其中写入 InformationClass 指定的事件类的状态信息。 对于 InformationClass = IoSessionStateInformation,例程会将 IO_SESSION_STATE_INFORMATION 结构写入缓冲区。 缓冲区必须足够大才能包含此结构。

[in] BufferLength

缓冲区指向的缓冲区的大小(以字节为单位)。 对于 InformationClass = IoSessionStateInformation,BufferLength 的大小必须至少 (IO_SESSION_STATE_INFORMATION) 。

返回值

如果调用成功,IoGetContainerInformation 将返回STATUS_SUCCESS。 可能的错误返回值包括以下内容:

返回代码 说明
STATUS_INVALID_PARAMETER_1
Parameter InformationClass 不是有效的 IO_CONTAINER_INFORMATION_CLASS 枚举常量。
STATUS_INVALID_PARAMETER_2
参数 ContainerObjectNULL
STATUS_INVALID_PARAMETER_4
对于 InformationClass 指定的信息类,参数 BufferLength 太小。

注解

此例程可能支持对各种信息类的查询。 在 Windows 7 中,此例程仅支持查询 IoSessionStateInformation 信息,即有关用户会话的状态信息。

要求

要求
最低受支持的客户端 适用于 Windows 7 及更高版本的 Windows 操作系统。
目标平台 通用
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Fltkernel.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

IO_CONTAINER_INFORMATION_CLASS

IO_CONTAINER_NOTIFICATION_CLASS

IO_SESSION_STATE_INFORMATION