Поделиться через


Функция 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)

См. также

ExReleaseResourceForThreadLite