다음을 통해 공유


TmReferenceEnlistmentKey 함수(wdm.h)

TmReferenceEnlistmentKey 루틴은 지정된 인리스트먼트 개체의 키에 대한 참조 수를 증가시키고 키를 검색합니다.

구문

NTSTATUS TmReferenceEnlistmentKey(
  [in]  PKENLISTMENT Enlistment,
  [out] PVOID        *Key
);

매개 변수

[in] Enlistment

인리스트먼트 개체에 대한 포인터입니다. 구성 요소는 ResourceManagerNotification 콜백 루틴에 대한 입력으로 이 포인터를 받을 수 있습니다. 또는 구성 요소가 ObReferenceObjectByHandle을 호출하고 ZwCreateEnlistment, TmCreateEnlistment 또는 ZwOpenEnlistment에 대한 이전 호출이 제공된 개체 핸들을 제공할 수 있습니다.

[out] Key

인리스트먼트 개체의 인리스트먼트 키를 받는 변수에 대한 포인터입니다. 호출자는 ZwCreateEnlistment 또는 TmCreateEnlistment를 호출할 때 인리스트먼트 키를 할당합니다.

반환 값

TmReferenceEnlistmentKey 는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 루틴이 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
Key 매개 변수의 값은 NULL입니다.
STATUS_UNSUCCESSFUL
지정된 인리스트먼트 개체의 참조 수가 0으로 감소했으므로 참조 수를 증분할 수 없습니다.
STATUS_INSUFFICIENT_RESOURCES
참조 수는 최대값(0xFFFFFFFF)이며 증분할 수 없습니다.
 

루틴은 다른 NTSTATUS 값을 반환할 수 있습니다.

설명

TmReferenceEnlistmentKey 루틴은 인리스트먼트 개체의 키 값에 대한 참조 수를 증가시키고 TmDereferenceEnlistmentKey 루틴은 개수를 감소합니다.

리소스 관리자가 인리스트먼트에 대한 키 값을 정의한 경우 리소스 관리자는 ZwGetNotificationResourceManager 를 호출하거나 KTM이 ResourceManagerNotification 콜백 루틴을 호출할 때 키 값을 받습니다.

리소스 관리자가 알림을 처리하는 동안 키를 임시 메모리 할당에 대한 포인터로 사용할 수 있으며 참조 횟수를 사용하여 메모리 할당을 취소해야 하는 시기를 결정할 수 있습니다.

Zw Xxx 루틴 대신 KTM의 TmXxx 루틴을 사용하는 시기에 대한 자세한 내용은 TmXxx 루틴 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 운영 체제 버전에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

ObReferenceObjectByHandle

ResourceManagerNotification

TmCreateEnlistment

TmDereferenceEnlistmentKey

ZwCreateEnlistment

ZwOpenEnlistment