GET_DMA_ADAPTER función de devolución de llamada (wdm.h)
La rutina GetDmaAdapter devuelve una estructura de DMA_ADAPTER para el dispositivo de destino.
Sintaxis
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Parámetros
[in] Context
Puntero a información de contexto específica de la interfaz. El autor de la llamada pasa el valor que se pasa como miembro Context de la estructura BUS_INTERFACE_STANDARD de la interfaz.
[in] DeviceDescriptor
Puntero a una estructura DEVICE_DESCRIPTION que describe los atributos del dispositivo físico.
[out] NumberOfMapRegisters
Puntero a, en la salida, el número máximo de registros de mapa que el controlador puede asignar para cualquier operación de transferencia de DMA. El autor de la llamada debe asignar una variable LONG para recibir estos datos.
Valor devuelto
La rutina GetDmaAdapter devuelve un puntero a una estructura de DMA_ADAPTER cuando se realiza correctamente. Si no se puede asignar una estructura de adaptador, la rutina devuelve NULL.
Comentarios
Si el controlador se ejecuta en IRQL = PASSIVE_LEVEL, debe obtener el objeto de adaptador DMA de un dispositivo mediante una llamada a la función IoGetDmaAdapter . IoGetDmaAdapter detecta si el controlador de bus admite la interfaz BUS_INTERFACE_STANDARD ; Si es así, IoGetDmaAdapter llama a la rutina a la que apunta el miembro GetDmaAdapter de esta interfaz para obtener el objeto de adaptador. De lo contrario, IoGetDmaAdapter llama a una rutina heredada equivalente.
Sin embargo, si un controlador debe obtener un objeto de adaptador mientras se ejecuta en IRQL ≥ DISPATCH_LEVEL, no puede hacerlo con la función IoGetDmaAdapter . En tal caso, el controlador debe consultar la interfaz de BUS_INTERFACE_STANDARD mientras sigue en IRQL = PASSIVE_LEVEL emitiendo una solicitud de IRP_MN_QUERY_INTERFACE .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Escritorio |
Encabezado | wdm.h (incluya Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |