UMDEtwLogMapAllocation 函式 (umdprovider.h)
描述如何使用 Microsoft DirectX 圖形核心子系統 (Dxgkrnl.sys) 記憶體配置或部分配置。
語法
void UMDEtwLogMapAllocation(
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 結構,指出配置用途。
傳回值
無
備註
使用者模式顯示驅動程式必須完全考慮其配置的視訊記憶體,因此必須在每次配置變更時呼叫此函式來記錄事件。
呼叫此函式的範例包括:
- Direct3D 配置會封裝到 DirectX 圖形核心子系統 (Dxgkrnl.sys) 配置中。
- Dxgkrnl 配置會建立為臨時表面。 在此情況下,請將 hD3DAllocation 參數設定為 NULL。
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 UMDEtwLogMapAllocation(ULONGLONG hD3DAllocation,
ULONGLONG hDxgAllocation,
ULONGLONG Offset,
ULONGLONG Size,
UMDETW_ALLOCATION_USAGE Usage,
UMDETW_ALLOCATION_SEMANTIC Semantic)
{
LogMapAllocation(TRUE,
hD3DAllocation,
hDxgAllocation,
Offset,
Size,
Usage,
Semantic);
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | Windows Server 2012 |
目標平台 | 桌面 |
標頭 | umdprovider.h (包含 Umdprovider.h) |