GET_DMA_ADAPTER função de retorno de chamada (wdm.h)
A rotina GetDmaAdapter retorna uma estrutura DMA_ADAPTER para o dispositivo de destino.
Sintaxe
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Parâmetros
[in] Context
Um ponteiro para informações de contexto específicas da interface. O chamador passa o valor que é passado como o membro Context da estrutura BUS_INTERFACE_STANDARD para a interface.
[in] DeviceDescriptor
Um ponteiro para uma estrutura DEVICE_DESCRIPTION que descreve os atributos do dispositivo físico.
[out] NumberOfMapRegisters
Um ponteiro para, na saída, o número máximo de registros de mapa que o driver pode alocar para qualquer operação de transferência de DMA. O chamador deve alocar uma variável LONG para receber esses dados.
Retornar valor
A rotina GetDmaAdapter retorna um ponteiro para uma estrutura DMA_ADAPTER quando bem-sucedida. Se uma estrutura do adaptador não puder ser alocada, a rotina retornará NULL.
Comentários
Se o driver estiver sendo executado em IRQL = PASSIVE_LEVEL, ele deverá obter o objeto do adaptador DMA de um dispositivo chamando a função IoGetDmaAdapter . IoGetDmaAdapter detecta se o motorista do barramento dá suporte à interface BUS_INTERFACE_STANDARD ; se isso acontecer, IoGetDmaAdapter chamará a rotina apontada pelo membro GetDmaAdapter dessa interface para obter o objeto do adaptador. Caso contrário, IoGetDmaAdapter chamará uma rotina herdada equivalente.
No entanto, se um driver precisar obter um objeto adaptador durante a execução no IRQL ≥ DISPATCH_LEVEL, ele não poderá fazê-lo com a função IoGetDmaAdapter . Nesse caso, o driver deve consultar a interface BUS_INTERFACE_STANDARD enquanto ainda estiver em IRQL = PASSIVE_LEVEL emitindo uma solicitação de IRP_MN_QUERY_INTERFACE .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | wdm.h (inclua Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |