Поделиться через


функция обратного вызова DXGKCB_ACQUIREHANDLEDATA (d3dkmddi.h)

DxgkcbAcquirehandledata получает ссылку на выделение.

Синтаксис

DXGKCB_ACQUIREHANDLEDATA DxgkcbAcquirehandledata;

VOID * DxgkcbAcquirehandledata(
  [in]  IN_CONST_PDXGKARGCB_GETHANDLEDATA unnamedParam1,
  [out] PDXGKARG_RELEASE_HANDLE unnamedParam2
)
{...}

Параметры

[in] unnamedParam1

Указатель на структуру DXGKARGCB_GETHANDLEDATA, описывающую дескриптор выделения, возвращаемый DxgkcbCreatecontextallocation.

[out] unnamedParam2

Указатель на дескриптор выпуска драйвера в режиме ядра (KMD) для управления временем существования ссылки на полученное выделение. KMD использует этот дескриптор при вызове DxgkccbReleasehandledata для освобождения ссылки на выделение.

Возвращаемое значение

DxgkcbAcquirehandledata возвращает дескриптор, на который KMD запрашивал ссылку. KMD использует этот дескриптор для последующих операций выделения или ресурса.

Замечания

Драйвер в режиме пользователя или приложения может вызывать D3DKMTDesiAllocation в любое время, чтобы уничтожить дескриптор выделения. Удаление выделения включает запрос к KMD, чтобы удалить объект выделения, который Dxgkrnl вернулся к ним во время создания выделения, поэтому KMD может в конечном итоге оказаться устаревшим указателем на освобожденную память. DxgkcbAcquirehandledata и DxgkccbReleasehandledata позволяют драйверу хранить ссылку на объект Dxgkrnl и гарантировать, что Dxgkrnl не уничтожает выделение и связанные с KMD объекты до тех пор, пока не будет выполнен вызов выпуска.

DXGKCB_XXX функции реализуются Dxgkrnl. Чтобы использовать эту функцию обратного вызова, задайте элементы DXGKARGCB_GETHANDLEDATA и вызовите DxgkCbAcquireHandleData через DXGKRNL_INTERFACE.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 (WDDM 2.0)
заголовка d3dkmddi.h
IRQL <= APC_LEVEL

См. также

DXGKARGCB_GETHANDLEDATA

DxgkcbCreatecontextallocation

DxgkcbReleasehandledata

DXGKRNL_INTERFACE