ObGetObjectSecurity 함수(wdm.h)
ObGetObjectSecurity 루틴은 지정된 개체에 대한 보안 설명자를 가져옵니다.
구문
NTSTATUS ObGetObjectSecurity(
[in] PVOID Object,
[out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
[out] PBOOLEAN MemoryAllocated
);
매개 변수
[in] Object
개체에 대한 포인터입니다.
[out] SecurityDescriptor
이 루틴이 지정된 개체의 SECURITY_DESCRIPTOR 포함하는 버퍼의 주소로 설정하는 호출자 제공 변수에 대한 포인터입니다. 지정된 개체에 보안 설명자가 없는 경우 이 변수는 ObGetObjectSecurity에서 반환할 때 NULL로 설정됩니다.
[out] MemoryAllocated
보안 설명자를 포함하도록 버퍼를 할당한 경우 이 루틴이 TRUE 로 설정하는 호출자 제공 변수에 대한 포인터입니다.
반환 값
ObGetObjectSecurity는 요청된 정보를 반환하기에 충분한 메모리를 할당할 수 없는 경우 STATUS_INSUFFICIENT_RESOURCES 같은 오류 상태 STATUS_SUCCESS 반환합니다.
설명
ObGetObjectSecurity를 성공적으로 호출하면 *SecurityDescriptor의 버퍼에 있는 자체 상대 보안 설명자가 반환되거나 지정된 개체에 보안 설명자가 없는 경우 *SecurityDescriptor에서 NULL을 반환합니다. 예를 들어 이벤트 개체와 같은 명명되지 않은 개체에는 보안 설명자가 없습니다.
ObGetObjectSecurity가 STATUS_SUCCESS 반환하는 경우 호출자는 MemoryAllocated에 반환된 값을 저장해야 합니다. 이러한 호출자는 결국 ObReleaseObjectSecurity에 대한 상호 호출에서 MemoryAllocated를 전달하여 보안 설명자에 대한 참조 수를 원래 값으로 복원하고 ObGetObjectSecurity에 의해 할당된 버퍼(있는 경우)를 해제해야 합니다.
ObGetObjectSecurity는 APC를 사용하도록 설정한 PASSIVE_LEVEL IRQL 수준 = 에서만 호출해야 합니다. 그렇지 않으면 교착 상태 또는 충돌이 발생할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlApcLte(wdm) |