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 Context membro della struttura 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, nell'output, numero massimo di registri mappa che il driver può allocare per qualsiasi operazione di trasferimento DMA. Per ricevere questi dati, il chiamante deve allocare una variabile LONG.
Valore restituito
La routine GetDmaAdapter restituisce un puntatore a una struttura DMA_ADAPTER quando ha esito positivo. Se non è possibile allocare una struttura di adattatori, la routine restituisce NULL.
Osservazioni
Se il driver è in esecuzione in IRQL = PASSIVE_LEVEL, deve ottenere l'oggetto adattatore DMA di un dispositivo chiamando la funzione IoGetDmaAdapter di. IoGetDmaAdapter rileva se il driver del bus supporta l'interfaccia BUS_INTERFACE_STANDARD; in caso affermativo, IoGetDmaAdapter chiama la routine a cui punta il GetDmaAdapter membro 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 inviando una richiesta di IRP_MN_QUERY_INTERFACE.
Fabbisogno
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 |