Fungsi UMDEtwLogUnmapAllocation (umdprovider.h)
Menunjukkan bahwa alokasi memori subsistem kernel grafis (Dxgkrnl.sys) Microsoft DirectX, atau sebagian alokasi, tidak lagi digunakan. Panggil fungsi ini apakah alokasi sedang dihancurkan atau tidak.
Sintaks
void UMDEtwLogUnmapAllocation(
ULONGLONG hD3DAllocation,
ULONGLONG hDxgAllocation,
ULONGLONG Offset,
ULONGLONG Size,
UMDETW_ALLOCATION_USAGE Usage,
UMDETW_ALLOCATION_SEMANTIC Semantic
);
Parameter
hD3DAllocation
Handel ke alokasi Direct3D.
Untuk driver mode pengguna Direct3D 10, handel akan menjadi nilai parameter hResource dari fungsi CreateResource (D3D10). Untuk driver mode pengguna Direct3D 9, handel akan menjadi nilai parameter pResource yang dikembalikan driver dalam fungsi CreateResource .
Driver dapat mengatur nilai ini ke NULL jika menggunakan alokasi secara internal.
hDxgAllocation
Handel ke alokasi subsistem kernel grafis DirectX (Dxgkrnl.sys) tempat alokasi Direct3D dipetakan.
Offset
Alamat awal, dalam byte, dari alokasi Direct3D dalam alokasi Dxgkrnl.
Size
Ukuran, dalam byte, dari alokasi Direct3D dalam alokasi Dxgkrnl.
Usage
Struktur UMDETW_ALLOCATION_USAGE yang menunjukkan alasan pemetaan ini.
Semantic
Jika alokasi digunakan secara internal oleh driver mode pengguna, ini adalah struktur UMDETW_ALLOCATION_SEMANTIC yang menunjukkan untuk apa alokasi digunakan.
Mengembalikan nilai
Tidak ada
Keterangan
Ketika dipanggil, fungsi ini mencatat peristiwa yang menjelaskan sumber daya API mana yang alokasinya, atau digunakan. Jika tidak ada sumber daya API yang dikaitkan dengan alokasi, fungsi mencatat peristiwa yang menjelaskan tujuan yang ditunjukkan driver untuk alokasi ini.
Driver tampilan mode pengguna harus sepenuhnya mempertimbangan memori video yang dialokasikannya, sehingga harus memanggil fungsi ini untuk mencatat peristiwa setiap kali alokasi berubah.
Driver harus meneruskan nilai parameter yang sama ke UMDEtwLogUnmapAllocation seperti yang terjadi pada UMDEtwLogMapAllocation.
UMDEtwLogUnmapAllocation didefinisikan sebaris dalam Umdprovider.h sebagai:
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);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Server minimum yang didukung | Windows Server 2012 |
Target Platform | Desktop |
Header | umdprovider.h (termasuk Umdprovider.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk