Importing memory object payloads from Windows handles does not transfer ownership of the handle to the Vulkan implementation. For handle types defined as NT handles, the application must release handle ownership using the CloseHandle system call when the handle is no longer needed. For handle types defined as NT handles, the imported memory object holds a reference to its payload.
Non-NT handle import operations 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.
Applications can import the same payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. In all cases, each import operation must create a distinct VkDeviceMemory object.
handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferPropertieshandle was exported, or the memory named by name must have been created on the same underlying physical device as devicehandleType is not 0, it must be defined as an NT handle or a global share handlehandleType is not EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULLhandleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleTypehandleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleTypehandle is not NULL, name must be NULLhandle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibilityname is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibilitysType must be STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHRhandleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
struct VkImportMemoryWin32HandleInfoKHR {
VkStructureType sType;
void const * pNext;
VkExternalMemoryHandleTypeFlagBits handleType;
HANDLE handle;
LPCWSTR name;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkImportMemoryWin32HandleInfoKHR.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | HANDLE
The struct member offsets. |
| public static final int | HANDLETYPE
The struct member offsets. |
| public static final int | NAME
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkImportMemoryWin32HandleInfoKHR(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR. | |
| public static VkImportMemoryWin32HandleInfoKHR. | |
| protected VkImportMemoryWin32HandleInfoKHR | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR | create(long address)
Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR. | create(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR. | |
| public long | |
| public VkImportMemoryWin32HandleInfoKHR | |
| public int | |
| public VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR | |
| public static VkImportMemoryWin32HandleInfoKHR. | |
| public static VkImportMemoryWin32HandleInfoKHR. | |
| public ByteBuffer | |
| public VkImportMemoryWin32HandleInfoKHR | |
| public String | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static ByteBuffer | |
| public static void | |
| public static String | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public long | |
| public VkImportMemoryWin32HandleInfoKHR | |
| public VkImportMemoryWin32HandleInfoKHR | set(int sType, long pNext, int handleType, long handle, ByteBuffer name)
Initializes this struct with the specified values. |
| public VkImportMemoryWin32HandleInfoKHR | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkImportMemoryWin32HandleInfoKHR | |
| public VkImportMemoryWin32HandleInfoKHR | sType$Default()
Sets the |
| public static void |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| HANDLE | back to summary |
|---|---|
| public static final int HANDLE The struct member offsets. | |
| HANDLETYPE | back to summary |
|---|---|
| public static final int HANDLETYPE The struct member offsets. | |
| NAME | back to summary |
|---|---|
| public static final int NAME The struct member offsets. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| VkImportMemoryWin32HandleInfoKHR | back to summary |
|---|---|
| protected VkImportMemoryWin32HandleInfoKHR(long address, ByteBuffer container) | |
| VkImportMemoryWin32HandleInfoKHR | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Returns a new
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR callocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR callocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| create | back to summary |
|---|---|
| protected VkImportMemoryWin32HandleInfoKHR create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Create a
| |
| createSafe | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Like
| |
| handle | back to summary |
|---|---|
| public long handle()
| |
| handle | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR handle(long value) Sets the specified value to the | |
| handleType | back to summary |
|---|---|
| public int handleType() a
| |
| handleType | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR handleType(int value) Sets the specified value to the | |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Returns a new
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR mallocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR mallocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryWin32HandleInfoKHR. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| name | back to summary |
|---|---|
| public ByteBuffer name()
| |
| name | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR name(ByteBuffer value) Sets the address of the specified encoded string to the | |
| nameString | back to summary |
|---|---|
| public String nameString()
| |
| nhandle | back to summary |
|---|---|
| public static long nhandle(long struct) Unsafe version of | |
| nhandle | back to summary |
|---|---|
| public static void nhandle(long struct, long value) Unsafe version of | |
| nhandleType | back to summary |
|---|---|
| public static int nhandleType(long struct) Unsafe version of | |
| nhandleType | back to summary |
|---|---|
| public static void nhandleType(long struct, int value) Unsafe version of | |
| nname | back to summary |
|---|---|
| public static ByteBuffer nname(long struct) Unsafe version of | |
| nname | back to summary |
|---|---|
| public static void nname(long struct, ByteBuffer value) Unsafe version of | |
| nnameString | back to summary |
|---|---|
| public static String nnameString(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR pNext(long value) Sets the specified value to the | |
| set | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR set(int sType, long pNext, int handleType, long handle, ByteBuffer name) Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR set(VkImportMemoryWin32HandleInfoKHR src) Copies the specified struct data to this struct.
| |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR sType$Default() Sets the | |
| validate | back to summary |
|---|---|
| public static void validate(long struct) Validates pointer members that should not be
| |
VkImportMemoryWin32HandleInfoKHR structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkImportMemoryWin32HandleInfoKHR |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkImportMemoryWin32HandleInfoKHR ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| getElementFactory | back to summary |
|---|---|
| protected VkImportMemoryWin32HandleInfoKHR getElementFactory() Implements abstract org.
| |
| handle | back to summary |
|---|---|
public long handle()
| |
| handle | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the specified value to the | |
| handleType | back to summary |
|---|---|
public int handleType()
| |
| handleType | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the specified value to the | |
| name | back to summary |
|---|---|
public ByteBuffer name()
| |
| name | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the address of the specified encoded string to the | |
| nameString | back to summary |
|---|---|
public String nameString()
| |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the specified value to the | |
| self | back to summary |
|---|---|
| protected VkImportMemoryWin32HandleInfoKHR. Implements abstract org.
| |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkImportMemoryWin32HandleInfoKHR. Sets the | |