如何将 DXGI 共享资源的句柄传递给另一个进程?

How do I pass a handle of DXGI shared resource to another process?

https://msdn.microsoft.com/en-us/library/windows/desktop/bb174562(v=vs.85).aspx

根据IDXGIResource::GetSharedHandle的文档,我应该可以"marshal this handle to another process to share a resource with a device in another process"。

但不清楚如何传递这个句柄。我可以将这个句柄的值传递给另一个进程吗?或者我需要一些特定的方法吗?

谢谢!

是的,您可以将此句柄直接传递给另一个进程并通过 OpenSharedResource 函数访问它。

Microsoft's documentation 现在建议使用 CreateSharedHandle() 而不是 GetSharedHandle() 并使用 D3D11_RESOURCE_MISC_SHARED_NTHANDLE 创建纹理。我必须调用 DuplicateHandle() 才能将创建的 HANDLE 传递给另一个要使用 OpenSharedResource1() 打开的进程。