Функция ExSetResourceOwnerPointer (wdm.h)
Подпрограмма ExSetResourceOwnerPointer задает указатель потока владельца для исполнительного ресурса.
Синтаксис
void ExSetResourceOwnerPointer(
[in, out] PERESOURCE Resource,
[in] PVOID OwnerPointer
);
Параметры
[in, out] Resource
Указатель на исполнительный ресурс, принадлежащий текущему потоку.
[in] OwnerPointer
Указатель на указатель потока владельца типа ERESOURCE_THREAD (дополнительные требования см. в следующем разделе "Примечания").
Возвращаемое значение
Никакой
Замечания
ExSetResourceOwnerPointer, используемый в сочетании с ExReleaseResourceForThreadLite, предоставляет средства для одного потока (действия в качестве потока диспетчера ресурсов) для получения и освобождения ресурсов для использования другим потоком (выступая в качестве потока пользователя ресурса).
После вызова ExSetResourceOwnerPointer для определенного ресурса, единственной другой подпрограммой, которую можно вызвать для этого ресурса, является ExReleaseResourceForThreadLite.
Поток resource manager получает право собственности на ресурс и передает права владения в поток пользователя путем вызова ExSetResourceOwnerPointer. Вызывающий объект должен выделить память для значения ERESOURCE_THREAD, на которое указывает OwnerPointer в системной памяти, и эта память должна оставаться выделенной до ExReleaseResourceForThreadLite. Вызывающий объект также должен задать два бита с низким порядком значения ERESOURCE_THREAD, на которое указывает OwnerPointer — эта кодировка используется внутренне службами ресурсов, чтобы различать адреса владельца и потока.
Когда поток пользователя выполняется с ресурсом, поток диспетчера ресурсов освобождает владение потоком пользователя, вызывая ExReleaseResourceForThreadLite. Входной параметр ResourceThreadId имеет значение параметра OwnerPointer, используемого в предыдущем вызове ExSetResourceOwnerPointer, который дал право владения рабочим потоком ресурса.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDIs(storport) |