共用方式為


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 (include Umdprovider.h)

另請參閱

CreateResource

CreateResource(D3D10)

UMDETW_ALLOCATION_SEMANTIC

UMDETW_ALLOCATION_USAGE

UMDEtwLogMapAllocation