D3DKMTLock 関数 (d3dkmthk.h)
D3DKMTLock 関数は、割り当て全体または割り当て内の特定のページをロックします。
構文
NTSTATUS D3DKMTLock(
D3DKMT_LOCK *unnamedParam1
);
パラメーター
unnamedParam1
pData [in, out]
割り当てをロックするためのパラメーターを記述する D3DKMT_LOCK 構造体へのポインター。
戻り値
D3DKMTLock は、次のいずれかの値を返します。
リターン コード | 形容 |
---|---|
STATUS_SUCCESS | 割り当てが正常にロックされました。 |
STATUS_DEVICE_REMOVED | グラフィックス アダプターが停止したか、ディスプレイ デバイスがリセットされました。 |
STATUS_INVALID_PARAMETER | パラメーターが検証され、正しくないと判断されました。 |
STATUS_GRAPHICS_ALLOCATION_BUSY | 割り当ては現在使用中であり、ロックできませんでした。 |
STATUS_GRAPHICS_TOO_MANY_REFERENCES | 割り当て中の参照が多すぎます。 |
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION | 割り当てをロックできませんでした。これは、デスウィズリングアパーチャが使用できなかったため、および割り当てがピン留めされ、削除できなかったためです。 |
この関数は、他の NTSTATUS 値を返す場合もあります。
備考
D3DKMTLock 関数は、システム メモリの割り当てとビデオ メモリの割り当てにアクセスするために呼び出されます。
例
次のコード例は、OpenGL ICD が D3DKMTLock を使用して割り当て全体をロックする方法を示しています。
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;
}
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ターゲット プラットフォーム の | 万国 |
ヘッダー | d3dkmthk.h (D3dkmthk.h を含む) |
ライブラリ | Gdi32.lib |
DLL | Gdi32.dll |