DXGKDDI_RELEASESWIZZLINGRANGE コールバック関数 (d3dkmddi.h)

DxgkDdiReleaseSwizzlingRange 関数は、DxgkDdiAcquireSwizzlingRange 関数が以前に設定したスウィズリング範囲を解放します。

構文

DXGKDDI_RELEASESWIZZLINGRANGE DxgkddiReleaseswizzlingrange;

NTSTATUS DxgkddiReleaseswizzlingrange(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_RELEASESWIZZLINGRANGE pReleaseSwizzlingRange
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーは、DxgkDdiAddDevice 関数の MiniportDeviceContext 出力パラメーターの Microsoft DirectX グラフィックス カーネル サブシステムにこのハンドルを以前に提供しました。

[in] pReleaseSwizzlingRange

スウィズリング範囲を解放するための情報を含む DXGKARG_RELEASESWIZZLINGRANGE 構造体へのポインター。

戻り値

DxgkDdiReleaseSwizzlingRange は、STATUS_SUCCESSを返します。スウィズリング範囲が正常に解放されない場合は、適切なエラー結果が返されます。

注釈

DxgkDdiReleaseSwizzlingRange 関数は、通常、指定された割り当て (つまり、pReleaseSwizzlingRange パラメーターが指すDXGKARG_RELEASESWIZZLINGRANGE構造体の hAllocation メンバー) が削除または破棄されたとき、または別の割り当てで DXGKARG_RELEASESWIZZLINGRANGE の RangeId メンバーが指定するスウィズリング範囲が必要な場合に呼び出されます。

指定された割り当てが現在複数のスウィズリング範囲に関連付けられている場合 ( DxgkDdiAcquireSwizzlingRange 関数の呼び出しを通じて)、ディスプレイ ミニポート ドライバーは、DXGKARG_RELEASESWIZZLINGRANGE の RangeId メンバーが指定するスウィズル範囲のみを解放する必要があります。 ディスプレイ ミニポート ドライバーが割り当てに関連付けられているすべてのスウィズル範囲を解放する場合、アプリケーションが現在 1 つ以上のスウィズル範囲を使用している可能性があるため、割り当てのランダムな破損が発生する可能性があります。

ドライバーはメモリ マップ I/O (MMIO) を使用してスウィズリング範囲を設定する必要があります。 これらの swizzling 範囲のアクセスは、GPU の実行に干渉してはなりません (つまり、 DxgkDdiReleaseSwizzlingRange が呼び出されたときに GPU をアイドル状態にすることはできません)。

DxgkDdiReleaseSwizzlingRange へのすべての呼び出しは、それ自体でシリアル化されますが、他のデバイス ドライバー インターフェイス (DDI) 関数ではシリアル化されません。

DxgkDdiReleaseSwizzlingRange をページング可能にする必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista
対象プラットフォーム デスクトップ
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARG_RELEASESWIZZLINGRANGE

DxgkDdiAcquireSwizzlingRange

DxgkDdiAddDevice