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 |
対象プラットフォーム | ユニバーサル |
Header | d3dkmthk.h (D3dkmthk.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示