次の方法で共有


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) インターフェイスを取得するには、次の操作を行います。

  1. DXGK_AGP_INTERFACE 構造体を割り当てます。

  2. Size メンバーを sizeof(DXGK_AGP_INTERFACE) に設定します。

  3. バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_AGP_INTERFACE_VERSION_1) で定義されます。

  4. DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesAgp に設定し、InterfaceDXGK_AGP_INTERFACE 構造体のアドレス (PINTERFACEとしてキャスト) に設定します。

  5. DxgkCbQueryServicesから戻ると、DXGK_AGP_INTERFACE 構造体には AGP インターフェイス関数へのポインターが含まれます。たとえば、AgpAllocatePoolします。

デバッグ レポート インターフェイスの取得

デバッグ レポート インターフェイスを取得するには、次の操作を行います。

  1. DXGK_DEBUG_REPORT_INTERFACE 構造体を割り当てます。

  2. Size メンバーを sizeof(DXGK_DEBUG_REPORT_INTERFACE) に設定します。

  3. バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_DEBUG_REPORT_INTERFACE_VERSION_1) で定義されます。

  4. DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesDebugReport に設定し、InterfaceDXGK_DEBUG_REPORT_INTERFACE 構造体のアドレス (PINTERFACE としてキャスト) に設定します。

  5. DxgkCbQueryServicesから戻ると、DXGK_DEBUG_REPORT_INTERFACE構造体にはデバッグ レポート インターフェイス関数へのポインターが含まれます。たとえば、DbgReportCreateします。

時間指定操作インターフェイスの取得

Timed Operation インターフェイスを取得するには、次の操作を行います。

  1. DXGK_TIMED_OPERATION_INTERFACE 構造体を割り当てます。

  2. Size メンバーを sizeof(DXGK_TIMED_OPERATION_INTERFACE) に設定します。

  3. バージョン メンバーを設定します。 バージョン定数は、Dispmprt.h (たとえば、DXGK_TIMED_OPERATION_INTERFACE_VERSION_1) で定義されます。

  4. DxgkCbQueryServices 呼び出します。ServicesType を DxgkServicesTimedOperation に設定し、インターフェイス DXGK_TIMED_OPERATION_INTERFACE 構造体のアドレス (PINTERFACE としてキャスト) に設定します。

  5. 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

関連項目

DXGK_AGP_INTERFACE

DxgkDdiStartDevice

DXGK_DEBUG_REPORT_INTERFACE

DXGK_FIRMWARE_TABLE_INTERFACE

DXGK_SERVICES

DXGK_SPB_INTERFACE

DXGK_TIMED_OPERATION_INTERFACE

DXGKRNL_INTERFACE

インターフェイスの