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