DXGKCB_QUERY_SERVICES función de devolución de llamada (dispmprt.h)
La función DxgkCbQueryServices devuelve una interfaz implementada por el controlador de puerto de visualización.
Sintaxis
DXGKCB_QUERY_SERVICES DxgkcbQueryServices;
NTSTATUS DxgkcbQueryServices(
[in] HANDLE DeviceHandle,
[in] DXGK_SERVICES ServicesType,
[in, out] PINTERFACE Interface
)
{...}
Parámetros
[in] DeviceHandle
Identificador que representa un adaptador de pantalla. El controlador de minipuerto de pantalla obtuvo previamente este identificador en el miembro DeviceHandle de la estructura DXGKRNL_INTERFACE que se pasó a DxgkDdiStartDevice.
[in] ServicesType
Constante de la enumeración DXGK_SERVICES que especifica qué interfaz se solicita.
[in, out] Interface
Puntero a una estructura INTERFACE que recibe la interfaz solicitada.
Valor devuelto
DxgkCbQueryServices devuelve STATUS_SUCCESS si se ejecuta correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.
Comentarios
Una interfaz, en este contexto, es un conjunto de funciones implementadas por el controlador de puerto de visualización. El controlador de puerto de visualización hace que las funciones de una interfaz estén disponibles para otros controladores proporcionando punteros de función en respuesta a DxgkCbQueryServices.
Obtención de la interfaz AGP
Para obtener una interfaz de Puerto gráfico acelerado (AGP), haga lo siguiente:
Asigne una estructura de DXGK_AGP_INTERFACE .
Establezca el miembro Size en sizeof(DXGK_AGP_INTERFACE).
Establezca el miembro Versión . Las constantes de versión se definen en Dispmprt.h (por ejemplo, DXGK_AGP_INTERFACE_VERSION_1).
Llame a DxgkCbQueryServices; establezca ServicesType en DxgkServicesAgp y establezca Interfaz en la dirección (conversión como PINTERFACE) de la estructura de DXGK_AGP_INTERFACE .
Al devolver desde DxgkCbQueryServices, la estructura de DXGK_AGP_INTERFACE contendrá punteros a las funciones de la interfaz AGP; por ejemplo, AgpAllocatePool.
Obtención de la interfaz Debug Report
Para obtener una interfaz de informe de depuración, haga lo siguiente:
Asigne una estructura de DXGK_DEBUG_REPORT_INTERFACE .
Establezca el miembro Size en sizeof(DXGK_DEBUG_REPORT_INTERFACE).
Establezca el miembro Versión . Las constantes de versión se definen en Dispmprt.h (por ejemplo, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).
Llame a DxgkCbQueryServices; establezca ServicesType en DxgkServicesDebugReport y establezca Interfaz en la dirección (conversión como PINTERFACE) de la estructura de DXGK_DEBUG_REPORT_INTERFACE .
Al volver desde DxgkCbQueryServices, la estructura de DXGK_DEBUG_REPORT_INTERFACE contendrá punteros a las funciones de interfaz Debug Report; por ejemplo, DbgReportCreate.
Obtención de la interfaz operación con tiempo
Para obtener una interfaz de operación con tiempo, haga lo siguiente:
Asigne una estructura de DXGK_TIMED_OPERATION_INTERFACE .
Establezca el miembro Size en sizeof(DXGK_TIMED_OPERATION_INTERFACE).
Establezca el miembro Versión . Las constantes de versión se definen en Dispmprt.h (por ejemplo, DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).
Llame a DxgkCbQueryServices; establezca ServicesType en DxgkServicesTimedOperation y establezca Interfaz en la dirección (conversión como PINTERFACE) de la estructura de DXGK_TIMED_OPERATION_INTERFACE .
Al devolver de DxgkCbQueryServices, la estructura de DXGK_TIMED_OPERATION_INTERFACE contendrá punteros a las funciones de la interfaz operación con tiempo; por ejemplo, TimedOperationStart.
Obtención de las interfaces spB y tabla de firmware del sistema
Las interfaces Simple Peripheral Bus (SPB) y System Firmware Table se pueden obtener de forma similar siguiendo los pasos anteriores mediante el ServicesType y la estructura adecuados.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Escritorio |
Encabezado | dispmprt.h (include Dispmprt.h) |
IRQL | PASSIVE_LEVEL |