StorPortSetSystemGroupAffinityThread 函数 (storport.h)
StorPortSetSystemGroupAffinityThread 更改调用线程的组号和关联掩码。
语法
ULONG StorPortSetSystemGroupAffinityThread(
[in] PVOID HwDeviceExtension,
[in/optional] PVOID ThreadContext,
[in] PSTOR_GROUP_AFFINITY Affinity,
[out/optional] PSTOR_GROUP_AFFINITY PreviousAffinity
);
参数
[in] HwDeviceExtension
指向微型端口的硬件设备扩展的指针。
[in/optional] ThreadContext
指向在之前调用 StorPortCreateSystemThread中收到的线程上下文的指针。
[in] Affinity
指向调用方分配的 STOR_GROUP_AFFINITY 结构的指针,该结构指定调用线程的新组号和组相对相关性掩码。
[out/optional] PreviousAffinity
指向 STOR_GROUP_AFFINITY 结构的指针,在此结构中,此例程在调用之前写入调用线程的组号和关联掩码。 此参数是可选的,可以是 NULL。
返回值
StorPortSetSystemGroupAffinityThread 返回以下值之一:
返回代码 | 描述 |
---|---|
STOR_STATUS_SUCCESS | 已成功设置指定的组相关性。 |
STOR_STATUS_INVALID_PARAMETER | 提供的一个或多个参数无效。 |
STOR_STATUS_UNSUCCESSFUL | 出于其他内部系统原因返回。 |
言论
微型端口可以调用 StorPortSetSystemGroupAffinityThread 来更改调用线程的组号和组级关联掩码。
Affinity 所指向的 STOR_GROUP_AFFINITY 结构中的组号和关联掩码 标识线程可运行的一组处理器。 如果成功,StorPortSetSystemGroupAffinityThread 计划线程在此集中的处理器上运行。
如果 PreviousAffinity 参数为非 NULL,StorPortSetSystemGroupAffinityThread 将有关在调用开始时生效的上一组相关性的信息保存在 PreviousAffinity 指向的 STOR_GROUP_AFFINITY 结构中。 若要还原以前的线程相关性,调用方可以将指向此结构的指针作为输入参数提供给 StorPortRevertToUserGroupAffinityThread 例程。
如果微型端口调用此函数以暂时更改线程的组相关性,则应调用 StorPortRevertToUserGroupAffinityThread,以在线程退出之前将线程相关性还原为其原始值。
随时只能将线程分配给一个组相关性。 该组始终位于线程进程的关联中。 线程可以通过调用此例程来更改为其分配的组。
StorPortSetSystemGroupAffinityThread 将组号和地缘掩码更改为 地缘 中指定的值,前提是以下内容为 true:
- 组号有效。
- 关联掩码有效(即,仅设置与组中逻辑处理器对应的掩码位)。
- 在关联掩码中指定的至少一个处理器处于活动状态。
如果未满足上述任何条件,则线程的组号和地缘掩码保持不变。 如果 PreviousAffinity 为非 NULL,则例程会将零写入 PreviousAffinity中的组号和地缘掩码。
在 相关性 中的新关联掩码生效之前,StorPortSetSystemGroupAffinityThread 删除与当前未处于活动状态的处理器对应的任何关联掩码位(设置为零)。 在随后的 StorPortSetSystemGroupAffinityThread 调用中,例程写入 PreviousAffinity 的值可能包含以这种方式修改的关联掩码。
如果在 IRQL <= APC_LEVEL 调用 StorPortSetSystemGroupAffinityThread,并且调用成功,则新组相关性将立即生效。 调用返回时,调用线程已在新组相关性中指定的处理器上运行。 如果在 IRQL = DISPATCH_LEVEL调用 StorPortSetSystemGroupAffinityThread 并且调用成功,则挂起的处理器更改将延迟,直到调用方将 IRQL 降低到低于DISPATCH_LEVEL。
要求
要求 | 价值 |
---|---|
支持的最低服务器 | Windows Server 2022 |
标头 | storport.h |
IRQL | <= DISPATCH_LEVEL |