次の方法で共有


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. Version メンバーを設定します。 バージョン定数は Dispmprt.h で定義されます (たとえば、DXGK_AGP_INTERFACE_VERSION_1)。

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

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

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

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

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

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

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

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

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

Timed Operation インターフェイスの取得

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

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

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

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

  4. DxgkCbQueryServices を呼び出します。ServicesTypeDxgkServicesTimedOperation に設定し、Interface を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
対象プラットフォーム デスクトップ
Header 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

インターフェイス