Function Prototype

vkGetMemoryWin32HandleKHR

Get a Windows HANDLE for a memory object

To export a Windows handle representing the payload of a Vulkan device memory object, call:

VkResult vkGetMemoryWin32HandleKHR(
    VkDevice device,
    const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
    HANDLE* pHandle);
  • device is the logical device that created the device memory being exported.
  • pGetWin32HandleInfo is a pointer to a VkMemoryGetWin32HandleInfoKHR structure containing parameters of the export operation.
  • pHandle will return the Windows handle representing the payload of the device memory object.

For handle types defined as NT handles, the handles returned by vkGetMemoryWin32HandleKHR are owned by the application and hold a reference to their payload. To avoid leaking resources, the application must release ownership of them using the CloseHandle system call when they are no longer needed.

Non-NT handle types do not add a reference to their associated payload. If the original object owning the payload is destroyed, all resources and handles sharing that payload will become invalid.

Valid Usage (Implicit)

VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter

pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure

VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter

pHandle must be a valid pointer to a HANDLE value