D3DKMTShareObjects 함수(d3dkmthk.h)

D3DKMTShareObjectsD3KMDTCreateAllocation, D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2D3DKMTCreateSynchronizationObject2 함수를 사용하여 만든 리소스 개체를 공유합니다.

구문

NTSTATUS D3DKMTShareObjects(
  [in]  UINT                cObjects,
  [in]  const D3DKMT_HANDLE *hObjects,
  [in]  POBJECT_ATTRIBUTES  pObjectAttributes,
  [in]  DWORD               dwDesiredAccess,
  [out] HANDLE              *phSharedNtHandle
);

매개 변수

[in] cObjects

hObjects 매개 변수에 제공된 리소스 개체의 수입니다. 이 값은 D3DKMT_MAX_OBJECTS_PER_HANDLE 보다 작거나 같아야 합니다.

[in] hObjects

공유할 리소스 개체를 지정하는 로컬 커널 모드 핸들 배열에 대한 포인터입니다. 자세한 내용은 비고를 참조하세요.

[in] pObjectAttributes

리소스 개체의 특성을 지정하는 OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다.

[in] dwDesiredAccess

리소스에 대한 읽기 및 쓰기 액세스를 지정합니다.

GPU 동기화 개체의 경우 dwDesiredAccess 는 다음 비트 필드( d3dukmdt.h에 정의됨)의 조합일 수 있습니다.

의미
STANDARD_RIGHTS_READ 동기화 개체를 여는 프로세스는 동기화 개체의 상태를 읽을 수 있습니다. 이 플래그를 지정해야 하거나 개체에 액세스할 수 없습니다.
D3DDDI_SYNC_OBJECT_WAIT 동기화 개체를 여는 프로세스는 동기화 개체에 대한 대기 작업을 실행할 수 있습니다.
D3DDDI_SYNC_OBJECT_SIGNAL 동기화 개체를 여는 프로세스는 동기화 개체에 대한 신호 작업을 실행할 수 있습니다.
D3DDDI_SYNC_OBJECT_ALL_ACCESS 동기화 개체를 여는 프로세스는 동기화 개체에 대한 모든 작업을 실행할 수 있습니다.

공유 리소스의 경우 원하는 액세스를 다음 플래그의 조합으로 지정할 수 있습니다( d3dkmthk.h에 정의됨).

의미
STANDARD_RIGHTS_READ 리소스를 여는 프로세스는 읽기 권한을 가질 수 있습니다. 이 플래그를 지정해야 하거나 개체에 액세스할 수 없습니다.
SHARED_ALLOCATION_WRITE 리소스를 여는 프로세스는 쓰기 액세스 권한을 가질 수 있습니다. 이 액세스 플래그를 지정하지 않으면 리소스가 읽기 전용으로 열립니다.
SHARED_ALLOCATION_ALL_ACCESS 리소스를 여는 프로세스는 개체에 대한 모든 액세스 권한을 가질 수 있습니다.

[out] phSharedNtHandle

리소스 개체를 지정하는 공유 NT 핸들에 대한 포인터입니다.

NtSecuritySharing 플래그 값이 설정되지 않은 경우 이 매개 변수는 NULL이 됩니다. 자세한 내용은 비고를 참조하세요.

반환 값

메서드는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드가 적절한 NTSTATUS 오류 코드를 반환할 수 있습니다.

설명

D3DKMTShareObjects를 사용하여 공유할 개체는 먼저 NtSecuritySharing 플래그 값 집합을 사용하여 만들어야 합니다. 이 플래그 값은 D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGSD3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 구조에서 사용할 수 있습니다.

이 함수는 다음 입력 개체 배열 형식 조합에 대해서만 hObjects 매개 변수를 통해 핸들을 지정해야 합니다.

  • 할당
  • 할당, 키 지정 뮤텍스 및 동기화 개체
  • 동기화 개체

운영 체제는 다른 입력 핸들 조합을 거부합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 유니버설
헤더 d3dkmthk.h(D3dkmthk.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS