コールバック関数DXGKDDI_PROTECTED_CALLBACK (dispmprt.h)
DxgkProtectedCallback コールバック ルーチンは、ディスプレイ ミニポート ドライバーによって実装され、ディスプレイ アダプターへのすべてのアクセスが禁止されている保護された状態の間に DxgkCbExcludeAdapterAccess によって呼び出されます。
構文
DXGKDDI_PROTECTED_CALLBACK DxgkddiProtectedCallback;
void DxgkddiProtectedCallback(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] PVOID ProtectedCallbackContext,
[in] NTSTATUS ProtectionStatus
)
{...}
パラメーター
[in] MiniportDeviceContext
ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前に DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。
[in] ProtectedCallbackContext
DxgkCbExcludeAdapterAccess の以前の呼び出しで指定されたドライバー定義情報へのポインター。
[in] ProtectionStatus
ディスプレイ アダプターの保護状態の状態。 STATUS_SUCCESS場合、アダプターはアクセスから正常に保護されました。 エラー状態コードは、アダプターが保護されていないことを示します。
戻り値
なし
解説
DxgkProtectedCallback は、状態パラメーター ProtectionStatus で示されているように、ディスプレイ アダプターへのすべてのアクセスが停止された場合にのみ呼び出す必要があります。
ドライバーは、コールバック ルーチン中に次の条件が満たされていることを確認する必要があります。
- デバイス上のすべての割り込みは無効になり、残りの保留中の割り込みは処理されます。これには、CPU でキューに入れられているが、まだサービスが提供されていない DPC も含まれます。
- すべての書き込み結合メモリとその他のキャッシュ関連の状態がフラッシュされました。
- 発生した ACPI または BIOS/SMI イベントは、ハードウェアにアクセスしません。
- リンク アダプターの状態構成では、すべてのアダプター間で一貫性が実現されます。
- アダプターは、レジスタと表示モードを含め、 DxgkProtectedCallback ルーチンからのリターン時に発生する DMA バッファーを処理するために適切な状態に維持されます。 ドライバーは、どのアプリケーションの表示状態または機能も変更しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
対象プラットフォーム | デスクトップ |
Header | dispmprt.h (Dispmprt.h を含む) |
IRQL | PASSIVE_LEVEL |