## C Specification

The VkSemaphoreGetWin32HandleInfoKHR structure is defined as:

// Provided by VK_KHR_external_semaphore_win32
typedef struct VkSemaphoreGetWin32HandleInfoKHR {
VkStructureType                          sType;
const void*                              pNext;
VkSemaphore                              semaphore;
VkExternalSemaphoreHandleTypeFlagBits    handleType;
} VkSemaphoreGetWin32HandleInfoKHR;

## Members

• sType is the type of this structure.

• pNext is NULL or a pointer to a structure extending this structure.

• semaphore is the semaphore from which state will be exported.

• handleType is the type of handle requested.

## Description

The properties of the handle returned depend on the value of handleType. See VkExternalSemaphoreHandleTypeFlagBits for a description of the properties of the defined external semaphore handle types.

Valid Usage
• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126
handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created

• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127
If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType

• VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128
semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType

• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129
If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore

• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130
If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution

• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131
handleType must be defined as an NT handle or a global share handle

Valid Usage (Implicit)
• VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR

• VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext
pNext must be NULL

• VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter
semaphore must be a valid VkSemaphore handle

• VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter
handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value

## Document Notes

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2021 The Khronos Group Inc.