Função ExSetResourceOwnerPointer (wdm.h)
A rotina ExSetResourceOwnerPointer define o ponteiro de thread do proprietário para um recurso executivo.
Sintaxe
void ExSetResourceOwnerPointer(
[in, out] PERESOURCE Resource,
[in] PVOID OwnerPointer
);
Parâmetros
[in, out] Resource
Um ponteiro para um recurso executivo pertencente ao thread atual.
[in] OwnerPointer
Um ponteiro para um ponteiro de thread proprietário do tipo ERESOURCE_THREAD (para obter requisitos adicionais, consulte a seção Comentários a seguir).
Retornar valor
Nenhum
Comentários
ExSetResourceOwnerPointer, usado em conjunto com ExReleaseResourceForThreadLite, fornece um meio para um thread (atuando como um thread do gerenciador de recursos) adquirir e liberar recursos para uso por outro thread (atuando como um thread de usuário de recurso).
Depois de chamar ExSetResourceOwnerPointer para um recurso específico, a única outra rotina que pode ser chamada para esse recurso é ExReleaseResourceForThreadLite.
O thread do gerenciador de recursos adquire a propriedade do recurso e passa a propriedade para o thread do usuário chamando ExSetResourceOwnerPointer. O chamador deve alocar a memória para o valor ERESOURCE_THREAD apontado por OwnerPointer na memória do sistema e essa memória deve permanecer alocada até que ExReleaseResourceForThreadLite retorne. O chamador também deve definir os dois bits de baixa ordem do valor de ERESOURCE_THREAD apontado pelo OwnerPointer como um – essa codificação é usada internamente pelos serviços de recursos para distinguir entre endereços de proprietário e thread.
Quando o thread do usuário é concluído com o recurso, o thread do gerenciador de recursos libera a propriedade do recurso do thread de usuário chamando ExReleaseResourceForThreadLite. O parâmetro de entrada ResourceThreadId é definido como o valor do parâmetro OwnerPointer usado na chamada anterior para ExSetResourceOwnerPointer que deu ao thread de trabalho a propriedade do recurso.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport) |