UMDEtwLogMapAllocation-Funktion (umdprovider.h)
Beschreibt, wie ein Microsoft DirectX-Grafik-Kernel-Subsystem (Dxgkrnl.sys) Speicherzuweisung oder ein Teil der Zuordnung verwendet wird.
Syntax
void UMDEtwLogMapAllocation(
ULONGLONG hD3DAllocation,
ULONGLONG hDxgAllocation,
ULONGLONG Offset,
ULONGLONG Size,
UMDETW_ALLOCATION_USAGE Usage,
UMDETW_ALLOCATION_SEMANTIC Semantic
);
Parameter
hD3DAllocation
Ein Handle für die Direct3D-Zuordnung.
Bei Direct3D 10-Benutzermodustreibern ist das Handle der Wert der hResource--Parameter der CreateResource(D3D10)--Funktion. Bei Direct3D 9-Benutzermodustreibern ist das Handle der Wert des pResource-Parameters, den der Treiber in der CreateResource--Funktion zurückgibt.
Der Treiber kann diesen Wert auf NULL- festlegen, wenn er Zuordnungen intern verwendet.
hDxgAllocation
Ein Handle zum DirectX-Grafik-Kernel-Subsystem (Dxgkrnl.sys) Zuordnung, der die Direct3D-Zuordnung zugeordnet ist.
Offset
Die Startadresse in Bytes der Direct3D-Zuordnung innerhalb der Dxgkrnl-Zuordnung.
Size
Die Größe der Direct3D-Zuordnung in Bytes innerhalb der Dxgkrnl-Zuordnung.
Usage
Eine UMDETW_ALLOCATION_USAGE Struktur, die den Grund für diese Zuordnung angibt.
Semantic
Wenn die Zuordnung intern vom Benutzermodustreiber verwendet wird, ist dies eine UMDETW_ALLOCATION_SEMANTIC Struktur, die angibt, wofür die Zuordnung verwendet wird.
Rückgabewert
Nichts
Bemerkungen
Der Anzeigetreiber für den Benutzermodus muss den zugewiesenen Videospeicher vollständig berücksichtigen. Daher muss diese Funktion aufgerufen werden, um jedes Mal ein Ereignis zu protokollieren, wenn sich die Zuordnung ändert.
Beispiele für den Aufruf dieser Funktion sind:
- Eine Direct3D-Zuweisung ist in ein DirectX-Grafik-Kernelsubsystem (Dxgkrnl.sys) gepackt.
- Eine Dxgkrnl-Zuordnung wird als Entwurfsoberfläche erstellt. Legen Sie in diesem Fall den hD3DAllocation Parameter auf NULL-fest.
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);
}
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Desktop |
Header- | umdprovider.h (include Umdprovider.h) |