Freigeben über


UMDEtwLogUnmapAllocation-Funktion (umdprovider.h)

Gibt an, dass ein Microsoft DirectX-Grafik-Kernel-Subsystem (Dxgkrnl.sys) Speicherzuweisung 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.

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

Wenn diese Funktion aufgerufen wird, protokolliert diese Funktion ein Ereignis, das beschreibt, für welche API-Ressource die Zuordnung verwendet wird. 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 diese Funktion aufgerufen werden, um jedes Mal ein Ereignis zu protokollieren, wenn sich die Zuordnung ändert.

Der Treiber sollte dieselben Parameterwerte an UMDEtwLogUnmapAllocation übergeben, wie es für UMDEtwLogMapAllocation.

UMDEtwLogUnmapAllocation inline in Umdprovider.h definiert ist:

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
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Desktop
Header- umdprovider.h (include Umdprovider.h)

Siehe auch

CreateResource-

CreateResource(D3D10)

UMDETW_ALLOCATION_SEMANTIC

UMDETW_ALLOCATION_USAGE

UMDEtwLogMapAllocation-