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,并将 “接口 ”设置为 (转换为 DXGK_DEBUG_REPORT_INTERFACE 结构的 PINTERFACE) 地址。
从 DxgkCbQueryServices 返回时,DXGK_DEBUG_REPORT_INTERFACE结构将包含指向调试报表接口函数的指针;例如 DbgReportCreate。
获取计时操作接口
若要获取计时操作接口,请执行以下操作:
将 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 结构将包含指向计时操作接口函数的指针;例如 TimedOperationStart。
获取 SPB 和系统固件表接口
类似地,可以使用相应的 ServicesType 和结构按照上述步骤获取简单外围总线 (SPB) 和系统固件表接口。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | dispmprt.h (包括 Dispmprt.h) |
IRQL | PASSIVE_LEVEL |