GET_DMA_ADAPTER funzione di callback (wdm.h)
La routine GetDmaAdapter restituisce una struttura DMA_ADAPTER per il dispositivo di destinazione.
Sintassi
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Parametri
[in] Context
Puntatore a informazioni di contesto specifiche dell'interfaccia. Il chiamante passa il valore passato come membro Contesto della struttura di BUS_INTERFACE_STANDARD per l'interfaccia.
[in] DeviceDescriptor
Puntatore a una struttura DEVICE_DESCRIPTION che descrive gli attributi del dispositivo fisico.
[out] NumberOfMapRegisters
Puntatore a, in output, numero massimo di registri mappa che il driver può allocare per qualsiasi operazione di trasferimento DMA. Il chiamante deve allocare una variabile LONG per ricevere questi dati.
Valore restituito
La routine GetDmaAdapter restituisce un puntatore a una struttura di DMA_ADAPTER in caso di esito positivo. Se non è possibile allocare una struttura di adapter, la routine restituisce NULL.
Commenti
Se il driver viene eseguito in IRQL = PASSIVE_LEVEL, deve ottenere l'oggetto adattatore DMA di un dispositivo chiamando la funzione IoGetDmaAdapter . IoGetDmaAdapter rileva se il driver del bus supporta l'interfaccia BUS_INTERFACE_STANDARD ; se lo fa, IoGetDmaAdapter chiama la routine a cui fa riferimento il membro GetDmaAdapter di questa interfaccia per ottenere l'oggetto adapter. In caso contrario, IoGetDmaAdapter chiama una routine legacy equivalente.
Tuttavia, se un driver deve ottenere un oggetto adapter durante l'esecuzione in IRQL ≥ DISPATCH_LEVEL, non può farlo con la funzione IoGetDmaAdapter . In tal caso, il driver deve eseguire una query per l'interfaccia BUS_INTERFACE_STANDARD mentre è ancora in IRQL = PASSIVE_LEVEL eseguendo una richiesta di IRP_MN_QUERY_INTERFACE .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Desktop |
Intestazione | wdm.h (include Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |