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) に設定します。
Version メンバーを設定します。 バージョン定数は 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) に設定します。
Version メンバーを設定します。 バージョン定数は 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 インターフェイスの取得
Timed Operation インターフェイスを取得するには、次の操作を行います。
DXGK_TIMED_OPERATION_INTERFACE構造体を割り当てます。
Size メンバーを sizeof (DXGK_TIMED_OPERATION_INTERFACE) に設定します。
Version メンバーを設定します。 バージョン定数は Dispmprt.h で定義されます (たとえば、DXGK_TIMED_OPERATION_INTERFACE_VERSION_1)。
DxgkCbQueryServices を呼び出します。ServicesType を DxgkServicesTimedOperation に設定し、Interface をDXGK_TIMED_OPERATION_INTERFACE構造体のアドレス (PINTERFACE としてキャスト) に設定します。
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 |