ExSetResourceOwnerPointer 함수(wdm.h)

ExSetResourceOwnerPointer 루틴은 임원 리소스에 대한 소유자 스레드 포인터를 설정합니다.

구문

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

매개 변수

[in, out] Resource

현재 스레드가 소유한 임원 리소스에 대한 포인터입니다.

[in] OwnerPointer

ERESOURCE_THREAD 형식의 소유자 스레드 포인터에 대한 포인터입니다(추가 요구 사항은 다음 주의 섹션 참조).

반환 값

없음

설명

ExReleaseResourceForThreadLite와 함께 사용되는 ExSetResourceOwnerPointer는 한 스레드(리소스 관리자 스레드 역할을 함)가 다른 스레드에서 사용할 리소스를 획득하고 해제하는 수단을 제공합니다(리소스 사용자 스레드 역할을 함).

특정 리소스에 대해 ExSetResourceOwnerPointer 를 호출한 후 해당 리소스에 대해 호출할 수 있는 유일한 다른 루틴은 ExReleaseResourceForThreadLite입니다.

리소스 관리자 스레드는 리소스의 소유권을 획득하고 ExSetResourceOwnerPointer를 호출하여 사용자 스레드에 소유권을 전달합니다. 호출자는 시스템 메모리에서 OwnerPointer 가 가리키는 ERESOURCE_THREAD 값에 대한 메모리를 할당해야 하며 ExReleaseResourceForThreadLite 가 반환될 때까지 이 메모리는 할당된 상태로 유지되어야 합니다. 또한 호출자는 OwnerPointer 가 가리키는 ERESOURCE_THREAD 값의 두 개의 하위 비트를 1로 설정해야 합니다. 이 인코딩은 리소스 서비스에서 내부적으로 소유자와 스레드 주소를 구분하는 데 사용됩니다.

리소스로 사용자 스레드가 완료되면 리소스 관리자 스레드는 ExReleaseResourceForThreadLite를 호출하여 사용자 스레드의 리소스 소유권을 해제합니다. ResourceThreadId 입력 매개 변수는 리소스의 작업자 스레드 소유권을 부여한 ExSetResourceOwnerPointer에 대한 이전 호출에서 사용된 OwnerPointer 매개 변수 값으로 설정됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport)

추가 정보

ExReleaseResourceForThreadLite