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