// d3dumddi.h
PFND3DDDI_CREATEDEVICE Pfnd3dddiCreatedevice;
HRESULT Pfnd3dddiCreatedevice(
HANDLE hAdapter,
D3DDDIARG_CREATEDEVICE *unnamedParam2
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
The CreateDevice function creates a graphics context that is referenced in subsequent calls.
hAdapterA handle that identifies the graphics adapter.
unnamedParam2pCreateData [in, out]
A pointer to a D3DDDIARG_CREATEDEVICE structure. On input, this structure contains information that the driver can use. On output, the driver specifies information in the structure that the Microsoft Direct3D runtime can use.
CreateDevice returns one of the following values:
| Return code | Description |
|---|---|
| S_OK | The graphics context is successfully created. |
| E_OUTOFMEMORY | CreateDevice could not allocate the memory that was required for it to complete. |
A display device is a graphics context that is used to hold a collection of rendering state. Multiple devices can be created by the same process on a given adapter. Note that the number of display devices that can simultaneously exist is limited only by available system memory. That is, a driver cannot hardcode a maximum device limit.
Generally, devices are independent of each other, so that resources that are created in one device cannot be referenced or accessed by resources that are created in another. However, cross-process resources are an exception to this rule.
When the Direct3D runtime calls CreateDevice to create a device, the runtime does not create a default graphics processing unit (GPU) context thread of execution for the device. The driver must explicitly call the pfnCreateContextCb function to create one or more contexts as required.