Función UMDEtwLogUnmapAllocation (umdprovider.h)

Indica que ya no se usa una asignación de memoria del subsistema de kernel de gráficos de Microsoft DirectX (Dxgkrnl.sys) o una parte de la asignación. Llame a esta función si se está destruyendo o no la asignación.

Sintaxis

void UMDEtwLogUnmapAllocation(
  ULONGLONG                  hD3DAllocation,
  ULONGLONG                  hDxgAllocation,
  ULONGLONG                  Offset,
  ULONGLONG                  Size,
  UMDETW_ALLOCATION_USAGE    Usage,
  UMDETW_ALLOCATION_SEMANTIC Semantic
);

Parámetros

hD3DAllocation

Identificador de la asignación de Direct3D.

Para los controladores de modo usuario de Direct3D 10, el identificador será el valor del parámetro hResource de la función CreateResource(D3D10). Para los controladores en modo de usuario de Direct3D 9, el identificador será el valor del parámetro pResource que devuelve el controlador en la función CreateResource .

El controlador puede establecer este valor en NULL si usa asignaciones internamente.

hDxgAllocation

Identificador de la asignación del subsistema de kernel de gráficos de DirectX (Dxgkrnl.sys) a la que se asigna la asignación de Direct3D.

Offset

Dirección inicial, en bytes, de la asignación de Direct3D dentro de la asignación dxgkrnl.

Size

Tamaño, en bytes, de la asignación de Direct3D dentro de la asignación dxgkrnl.

Usage

Estructura UMDETW_ALLOCATION_USAGE que indica el motivo de esta asignación.

Semantic

Si el controlador en modo de usuario usa internamente la asignación, se trata de una estructura de UMDETW_ALLOCATION_SEMANTIC que indica para qué se usa la asignación.

Valor devuelto

None

Observaciones

Cuando se llama a esta función, registra un evento que describe el recurso de API para el que se usa la asignación o para el que se usa. Si no se ha asociado ningún recurso de API a la asignación, la función registra un evento que describe el propósito que el controlador indicó para esta asignación.

El controlador de pantalla en modo de usuario debe tener en cuenta completamente la memoria de vídeo que asigna, por lo que debe llamar a esta función para registrar un evento cada vez que cambie la asignación.

El controlador debe pasar los mismos valores de parámetros a UMDEtwLogUnmapAllocation , como hizo con UMDEtwLogMapAllocation.

UMDEtwLogUnmapAllocation se define en línea en Umdprovider.h como:

FORCEINLINE void LogMapAllocation(BOOLEAN Enter,
                    ULONGLONG hD3DAllocation,
                    ULONGLONG hDxgAllocation,
                    ULONGLONG Offset,
                    ULONGLONG Size,
                    UMDETW_ALLOCATION_USAGE Usage,
                    UMDETW_ALLOCATION_SEMANTIC Semantic)
{
    if (Enabled)
    {   
        EVENT_DATA_DESCRIPTOR Descriptors[6];
        
        // Create a description of the event
        EventDataDescCreate(&Descriptors[0], &hD3DAllocation, 8);
        EventDataDescCreate(&Descriptors[1], &hDxgAllocation, 8);
        EventDataDescCreate(&Descriptors[2], &Offset, 8);
        EventDataDescCreate(&Descriptors[3], &Size, 8);
        EventDataDescCreate(&Descriptors[4], &Usage, 4);
        EventDataDescCreate(&Descriptors[5], &Semantic, 4);

        // Log the event
        EventWrite(
            RegHandle,
            Enter ? (InRundown ? &RundownAllocationEvent : &MapAllocationEvent) : &UnmapAllocationEvent,
            sizeof(Descriptors) / sizeof(Descriptors[0]),
            Descriptors
        );
    }
}

FORCEINLINE void UMDEtwLogUnmapAllocation(ULONGLONG hD3DAllocation,
                              ULONGLONG hDxgAllocation,
                              ULONGLONG Offset,
                              ULONGLONG Size,
                              UMDETW_ALLOCATION_USAGE Usage,
                              UMDETW_ALLOCATION_SEMANTIC Semantic)
{
    LogMapAllocation(FALSE,
                     hD3DAllocation,
                     hDxgAllocation,
                     Offset,
                     Size,
                     Usage,
                     Semantic);
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Escritorio
Encabezado umdprovider.h (include Umdprovider.h)

Consulte también

CreateResource

CreateResource(D3D10)

UMDETW_ALLOCATION_SEMANTIC

UMDETW_ALLOCATION_USAGE

UMDEtwLogMapAllocation