共用方式為


UMDEtwLogUnmapAllocation 函式 (umdprovider.h)

表示不再使用 Microsoft DirectX 圖形核心子系統 (Dxgkrnl.sys) 記憶體配置或部分配置。 呼叫此函式,不論配置是否正在終結。

語法

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

參數

hD3DAllocation

Direct3D 配置的句柄。

針對 Direct3D 10 使用者模式驅動程式,句柄將是 CreateResource (D3D10) 函式的 hResource 參數值。 針對 Direct3D 9 使用者模式驅動程式,句柄會是驅動程式在 CreateResource 函式中傳回的 pResource 參數值。

如果驅動程式在內部使用配置,驅動程式可以將此值設定為 NULL

hDxgAllocation

DirectX 圖形核心子系統的句柄 (Dxgkrnl.sys) Direct3D 配置對應的配置。

Offset

Dxgkrnl 配置內 Direct3D 配置的起始位址,以位元組為單位。

Size

Dxgkrnl 配置內 Direct3D 配置的大小,以位元組為單位。

Usage

表示此對應原因 的UMDETW_ALLOCATION_USAGE 結構。

Semantic

如果使用者模式驅動程式在內部使用配置,這是 UMDETW_ALLOCATION_SEMANTIC 結構,指出配置用途。

傳回值

備註

呼叫時,此函式會記錄一個事件,描述配置所使用的 API 資源,或正在使用哪一個 API 資源。 如果沒有 API 資源與配置相關聯,函式會記錄事件,描述驅動程式為此配置指示的目的。

使用者模式顯示驅動程式必須完全考慮其配置的視訊記憶體,因此必須在每次配置變更時呼叫此函式來記錄事件。

驅動程式應該將相同的參數值傳遞至 UMDEtwLogUnmapAllocation ,如同對 UMDEtwLogMapAllocation 所做的一樣。

UMDEtwLogUnmapAllocation 在 Umdprovider.h 中定義為:

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);
}

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 桌面
標頭 umdprovider.h (包含 Umdprovider.h)

另請參閱

CreateResource

CreateResource (D3D10)

UMDETW_ALLOCATION_SEMANTIC

UMDETW_ALLOCATION_USAGE

UMDEtwLogMapAllocation