UMDEtwLogUnmapAllocation-Funktion (umdprovider.h)
Gibt an, dass ein Microsoft DirectX-Grafikkernsubsystem (Dxgkrnl.sys) arbeitsspeicherbelegung oder ein Teil der Zuordnung nicht mehr verwendet wird. Rufen Sie diese Funktion auf, unabhängig davon, ob die Zuordnung zerstört wird.
Syntax
void UMDEtwLogUnmapAllocation(
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.
Für Direct3D 10-Benutzermodustreiber ist das Handle der Wert des hResource-Parameters der CreateResource(D3D10) -Funktion. Für Direct3D 9-Benutzermodustreiber 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 für die Zuordnung des DirectX-Grafikkernsubsystems (Dxgkrnl.sys), dem die Direct3D-Zuordnung zugeordnet ist.
Offset
Die Anfangsadresse der Direct3D-Zuordnung in Byte innerhalb der Dxgkrnl-Zuordnung.
Size
Die Größe der Direct3D-Zuordnung innerhalb der Dxgkrnl-Zuordnung in Byte.
Usage
Eine UMDETW_ALLOCATION_USAGE-Struktur , die den Grund für diese Zuordnung angibt.
Semantic
Wenn die Zuordnung intern vom Benutzermodustreiber verwendet wird, handelt es sich um eine UMDETW_ALLOCATION_SEMANTIC Struktur, die angibt, wofür die Zuordnung verwendet wird.
Rückgabewert
Keine
Bemerkungen
Wenn diese Funktion aufgerufen wird, protokolliert sie ein Ereignis, das beschreibt, für welche API-Ressource die Zuordnung verwendet wird oder verwendet wurde. Wenn der Zuordnung keine API-Ressource zugeordnet wurde, protokolliert die Funktion ein Ereignis, das den Zweck beschreibt, den der Treiber für diese Zuordnung angegeben hat.
Der Anzeigetreiber für den Benutzermodus muss den zugewiesenen Videospeicher vollständig berücksichtigen. Daher muss er diese Funktion aufrufen, um jedes Mal, wenn sich die Zuordnung ändert, ein Ereignis zu protokollieren.
Der Treiber sollte dieselben Parameterwerte an UMDEtwLogUnmapAllocation übergeben wie an UMDEtwLogMapAllocation.
UMDEtwLogUnmapAllocation wird inLine in Umdprovider.h wie folgt definiert:
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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Desktop |
Kopfzeile | umdprovider.h (include Umdprovider.h) |