ExSetResourceOwnerPointer 函数 (wdm.h)
ExSetResourceOwnerPointer 例程设置执行资源的所有者线程指针。
语法
void ExSetResourceOwnerPointer(
[in, out] PERESOURCE Resource,
[in] PVOID OwnerPointer
);
参数
[in, out] Resource
指向当前线程拥有的执行资源的指针。
[in] OwnerPointer
指向ERESOURCE_THREAD类型的所有者线程指针的指针(有关其他要求,请参阅以下“备注”部分)。
返回值
没有
言论
ExSetResourceOwnerPointer,与 ExReleaseResourceForThreadLite结合使用,为一个线程(充当资源管理器线程)获取和释放供另一个线程使用的资源(充当资源用户线程)提供了一种方法。
为特定资源调用 ExSetResourceOwnerPointer 后,唯一可为该资源调用的例程是 ExReleaseResourceForThreadLite。
资源管理器线程获取资源的所有权,并通过调用 ExSetResourceOwnerPointer将所有权传递给用户线程。 调用方必须为系统内存中 OwnerPointer 指向的ERESOURCE_THREAD值分配内存,并且此内存必须保持分配,直到 ExReleaseResourceForThreadLite 返回。 调用方还必须将 OwnerPointer 指向的ERESOURCE_THREAD值的两个低序位设置为一个 ,资源服务在内部使用此编码来区分所有者和线程地址。
使用资源完成用户线程后,资源管理器线程通过调用 ExReleaseResourceForThreadLite释放用户线程对资源的所有权。 ResourceThreadId 输入参数设置为上一次调用 ExSetResourceOwnerPointer 时使用的 OwnerPointer 参数的值,该参数赋予了资源的辅助角色线程所有权。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport) |