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
Direct3D 割り当てがマップされる DirectX グラフィックス カーネル サブシステム (Dxgkrnl.sys) の割り当てへのハンドル。
Offset
Dxgkrnl 割り当て内の Direct3D 割り当ての開始アドレス (バイト単位)。
Size
Dxgkrnl 割り当て内の Direct3D 割り当てのサイズ (バイト単位)。
Usage
このマッピングの理由を示す UMDETW_ALLOCATION_USAGE 構造体。
Semantic
割り当てがユーザー モード ドライバーによって内部的に使用される場合、これは割り当てが何に使用されているかを示す UMDETW_ALLOCATION_SEMANTIC 構造体です。
戻り値
何一つ
備考
この関数は、呼び出されると、割り当てが使用されている API リソースまたは使用されていた API リソースを記述するイベントをログに記録します。 API リソースが割り当てに関連付けられていない場合、この関数は、ドライバーがこの割り当てについて示した目的を説明するイベントをログに記録します。
ユーザー モードディスプレイ ドライバーは、割り当てるビデオ メモリを完全に考慮する必要があるため、割り当てが変更されるたびにイベントをログに記録するには、この関数を呼び出す必要があります。
ドライバーは、UMDEtwLogMapAllocation をする場合と同じパラメーター値を UMDEtwLogUnmapAllocation 渡す必要があります。
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 の
UMDEtwLogMapAllocation の