InitializeContext 函数 (winbase.h)
使用必要的大小和对齐方式初始化缓冲区内的 CONTEXT 结构。
语法
BOOL InitializeContext(
[out, optional] PVOID Buffer,
[in] DWORD ContextFlags,
[out, optional] PCONTEXT *Context,
[in, out] PDWORD ContextLength
);
参数
[out, optional] Buffer
指向在其中初始化 CONTEXT 结构的缓冲区的指针。 此参数可以 NULL 来确定保存具有指定 ContextFlags上下文记录所需的缓冲区大小。
[in] ContextFlags
一个值,该值指示应初始化 上下文 结构的哪些部分。 此参数影响初始化 上下文 结构的大小。
[out, optional] Context
指向一个变量的指针,该变量接收 缓冲区中初始化的 CONTEXT 结构的地址。
[in, out] ContextLength
在输入时,指定 缓冲区所指向的缓冲区长度(以字节为单位)。 如果缓冲区不够大,无法包含 CONTEXT的指定部分,则函数将失败,GetLastError 返回 ERROR_INSUFFICIENT_BUFFER,ContextLength 设置为所需的缓冲区大小。 如果函数失败并出现除 ERROR_INSUFFICIENT_BUFFER以外的错误,则未定义 ContextLength 的内容。
返回值
如果成功,此函数返回 true ,否则 FALSE。 若要获取扩展的错误信息,请调用 GetLastError。
言论
InitializeContext 可用于初始化缓冲区中具有所需大小和对齐特征的 CONTEXT 结构。 如果指定了 CONTEXT_XSTATEContextFlag,则此例程是必需的,因为所需的上下文大小和对齐方式可能会根据系统上启用的处理器功能而更改。
首先,使用 ContextFlags 参数调用此函数,并将其设置为将使用的最大功能数,并将 Buffer 参数 NULL。 该函数返回 ContextLength 参数中所需的缓冲区大小(以字节为单位)。 为 缓冲区 中的数据分配足够的空间,并再次调用函数以初始化 上下文。 成功完成此例程后,ContextFlagsContext 结构的成员初始化,但结构的其余内容未定义。 ContextFlags 参数中指定的某些位可能无法在 Context中设置 ->ContextFlags(如果系统不支持这些位)。 应用程序随后可能会删除,但绝不必须从 ContextFlagsCONTEXT成员中添加位。
具有 SP1 和 Windows Server 2008 R2 的 Windows 7 SP1:AVX API 首先在 Windows 7 上实现 SP1 和具有 SP1 的 Windows Server 2008 R2。 由于没有适用于 SP1 的 SDK,这意味着没有可用的标头和库文件可供使用。 在这种情况下,调用方必须声明本文档中所需的函数,并使用
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7 SP1 [桌面应用 |UWP 应用] |
支持的最低服务器 | 带 SP1 的 Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | winbase.h (包括 Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |