DXGKCB_QUERY_SERVICESコールバック関数 (dispmprt.h)
DxgkCbQueryServices 関数は、ディスプレイ ポート ドライバーによって実装されたインターフェイスを返します。
構文
DXGKCB_QUERY_SERVICES DxgkcbQueryServices;
NTSTATUS DxgkcbQueryServices(
[in] HANDLE DeviceHandle,
[in] DXGK_SERVICES ServicesType,
[in, out] PINTERFACE Interface
)
{...}
パラメーター
[in] DeviceHandle
ディスプレイ アダプターを表すハンドル。 ディスプレイ ミニポート ドライバーは、DxgkDdiStartDeviceに渡された DXGKRNL_INTERFACE 構造体の DeviceHandle メンバーで、このハンドルを以前に取得しました。
[in] ServicesType
要求するインターフェイスを指定する DXGK_SERVICES 列挙体の定数。
[in, out] Interface
要求されたインターフェイスを受け取る INTERFACE 構造体へのポインター。
戻り値
DxgkCbQueryServices 成功した場合、STATUS_SUCCESSを返します。 それ以外の場合は、Ntstatus.hで定義されているエラー コードのいずれかを返します。
備考
このコンテキストでは、インターフェイスは、ディスプレイ ポート ドライバーによって実装される関数のセットです。 ディスプレイ ポート ドライバーは、DxgkCbQueryServicesに応答して関数ポインターを提供することによって、他のドライバーがインターフェイスの関数を使用できるようにします。
AGP インターフェイスの取得
高速グラフィックス ポート (AGP) インターフェイスを取得するには、次の操作を行います。
DXGK_AGP_INTERFACE 構造体を割り当てます。
Size メンバーを sizeof(DXGK_AGP_INTERFACE) に設定します。
バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_AGP_INTERFACE_VERSION_1) で定義されます。
DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesAgp に設定し、Interface を DXGK_AGP_INTERFACE 構造体のアドレス (PINTERFACEとしてキャスト) に設定します。
DxgkCbQueryServicesから戻ると、DXGK_AGP_INTERFACE 構造体には AGP インターフェイス関数へのポインターが含まれます。たとえば、AgpAllocatePoolをします。
デバッグ レポート インターフェイスの取得
デバッグ レポート インターフェイスを取得するには、次の操作を行います。
DXGK_DEBUG_REPORT_INTERFACE 構造体を割り当てます。
Size メンバーを sizeof(DXGK_DEBUG_REPORT_INTERFACE) に設定します。
バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_DEBUG_REPORT_INTERFACE_VERSION_1) で定義されます。
DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesDebugReport に設定し、Interface を DXGK_DEBUG_REPORT_INTERFACE 構造体のアドレス (PINTERFACE としてキャスト) に設定します。
DxgkCbQueryServicesから戻ると、DXGK_DEBUG_REPORT_INTERFACE構造体にはデバッグ レポート インターフェイス関数へのポインターが含まれます。たとえば、DbgReportCreateをします。
時間指定操作インターフェイスの取得
Timed Operation インターフェイスを取得するには、次の操作を行います。
DXGK_TIMED_OPERATION_INTERFACE 構造体を割り当てます。
Size メンバーを sizeof(DXGK_TIMED_OPERATION_INTERFACE) に設定します。
バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_TIMED_OPERATION_INTERFACE_VERSION_1) で定義されます。
DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesTimedOperation に設定し、インターフェイス DXGK_TIMED_OPERATION_INTERFACE 構造体のアドレス (PINTERFACE としてキャスト) に設定します。
DxgkCbQueryServicesから戻ると、DXGK_TIMED_OPERATION_INTERFACE 構造体には Timed Operation インターフェイス関数へのポインターが含まれます。たとえば、TimedOperationStartをします。
SPB インターフェイスとシステム ファームウェア テーブル インターフェイスの取得
Simple Peripheral Bus (SPB) インターフェイスと System Firmware Table インターフェイスは、適切な ServicesType と構造体を使用して、上記の手順に従って同様に取得できます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | dispmprt.h (Dispmprt.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
DxgkDdiStartDeviceの