Bagikan melalui


Fungsi D3DKMTLock (d3dkmthk.h)

Fungsi D3DKMTLock mengunci seluruh alokasi atau halaman tertentu dalam alokasi.

Sintaks

NTSTATUS D3DKMTLock(
  D3DKMT_LOCK *unnamedParam1
);

Parameter

unnamedParam1

pData [masuk, keluar]

Penunjuk ke struktur D3DKMT_LOCK yang menjelaskan parameter untuk mengunci alokasi.

Nilai kembali

D3DKMTLock mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS Alokasi berhasil dikunci.
STATUS_DEVICE_REMOVED Adaptor grafis dihentikan atau perangkat tampilan direset.
STATUS_INVALID_PARAMETER Parameter divalidasi dan ditentukan salah.
STATUS_GRAPHICS_ALLOCATION_BUSY Alokasi saat ini sedang digunakan dan tidak dapat dikunci.
STATUS_GRAPHICS_TOO_MANY_REFERENCES Terlalu banyak referensi yang tertunda pada alokasi.
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Alokasi tidak dapat dikunci karena aperture yang memburuk tidak tersedia dan karena alokasi disematkan dan tidak dapat dikeluarkan.

Fungsi ini mungkin juga mengembalikan nilai NTSTATUS lainnya.

Keterangan

Fungsi D3DKMTLock dipanggil untuk mengakses alokasi memori sistem dan alokasi memori video.

Contoh

Contoh kode berikut menunjukkan bagaimana OpenGL ICD dapat menggunakan D3DKMTLock untuk mengunci seluruh alokasi.

VOID* LockEntireAllocation(D3DKMT_HANDLE hDevice, D3DKMT_HANDLE hAllocation, UINT PrivateData)
{
    D3DKMT_LOCK LockAllocation = {0};

    LockAllocation.hDevice = hDevice;
    LockAllocation.hAllocation = LockData.hAllocation;
    LockAllocation.Flags.LockEntire = TRUE;
    LockAllocation.PrivateDriverData = PrivateData;
    LockAllocation.NumPages = 0;
    LockAllocation.pPages = NULL;
 
    if (NT_SUCCESS((*pfnKTLock)(&LockAllocation))) {
        return LockAllocation.pData;
    }
    return NULL;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Target Platform Universal
Header d3dkmthk.h (termasuk D3dkmthk.h)
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

D3DKMT_LOCK