Функция ExSetResourceOwnerPointer (wdm.h)

Подпрограмма ExSetResourceOwnerPointer задает указатель потока владельца для исполнительного ресурса.

Синтаксис

void ExSetResourceOwnerPointer(
  [in, out] PERESOURCE Resource,
  [in]      PVOID      OwnerPointer
);

Параметры

[in, out] Resource

Указатель на исполнительный ресурс, принадлежащий текущему потоку.

[in] OwnerPointer

Указатель на поток владельца типа ERESOURCE_THREAD (дополнительные требования см. в следующем разделе Примечания).

Возвращаемое значение

None

Remarks

ExSetResourceOwnerPointer, используемый в сочетании с ExReleaseResourceForThreadLite, предоставляет средства для одного потока (выступающего в качестве потока диспетчера ресурсов) для получения и освобождения ресурсов для использования другим потоком (выступая в качестве потока пользователя ресурсов).

После вызова ExSetResourceOwnerPointer для определенного ресурса единственной другой подпрограммой, которая может быть вызвана для этого ресурса, является ExReleaseResourceForThreadLite.

Поток диспетчера ресурсов получает право собственности на ресурс и передает права владения потоку пользователя путем вызова ExSetResourceOwnerPointer. Вызывающий объект должен выделить память для ERESOURCE_THREAD значения, указанного OwnerPointer , в системной памяти, и эта память должна оставаться выделенной до тех пор, пока не будет возвращена функция ExReleaseResourceForThreadLite . Вызывающий объект также должен задать два бита нижнего порядка значения ERESOURCE_THREAD, на которое указывает OwnerPointer . Эта кодировка используется внутренне службами ресурсов для различения адресов владельца и потока.

После завершения потока пользователя с ресурсом поток диспетчера ресурсов освобождает права владения потока пользователя ресурсом путем вызова ExReleaseResourceForThreadLite. Входной параметр ResourceThreadId имеет значение параметра OwnerPointer, используемого в предыдущем вызове ExSetResourceOwnerPointer, который предоставил рабочему потоку право собственности на ресурс.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport)

См. также раздел

ExReleaseResourceForThreadLite