GET_DMA_ADAPTER fonction de rappel (wdm.h)
La routine GetDmaAdapter retourne une structure DMA_ADAPTER pour l’appareil cible.
Syntaxe
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Paramètres
[in] Context
Pointeur vers des informations de contexte spécifiques à l’interface. L’appelant transmet la valeur qui est passée en tant que membre de contexte de la structure BUS_INTERFACE_STANDARD pour l’interface.
[in] DeviceDescriptor
Pointeur vers une structure DEVICE_DESCRIPTION qui décrit les attributs de l’appareil physique.
[out] NumberOfMapRegisters
Pointeur vers, en sortie, le nombre maximal de registres de carte que le pilote peut allouer pour toute opération de transfert DMA. L’appelant doit allouer une variable LONG pour recevoir ces données.
Valeur retournée
La routine GetDmaAdapter retourne un pointeur vers une structure DMA_ADAPTER en cas de réussite. Si une structure d’adaptateur ne peut pas être allouée, la routine retourne NULL.
Remarques
Si le pilote s’exécute à IRQL = PASSIVE_LEVEL, il doit obtenir l’objet d’adaptateur DMA d’un appareil en appelant la fonction IoGetDmaAdapter . IoGetDmaAdapter détecte si le pilote de bus prend en charge l’interface BUS_INTERFACE_STANDARD ; si c’est le cas, IoGetDmaAdapter appelle la routine pointée par le membre GetDmaAdapter de cette interface pour obtenir l’objet adaptateur. Sinon, IoGetDmaAdapter appelle une routine héritée équivalente.
Toutefois, si un pilote doit obtenir un objet d’adaptateur lors de l’exécution au ≥ DISPATCH_LEVEL IRQL, il ne peut pas le faire avec la fonction IoGetDmaAdapter . Dans ce cas, le pilote doit rechercher l’interface BUS_INTERFACE_STANDARD alors qu’il est toujours à IRQL = PASSIVE_LEVEL en émettant une requête de IRP_MN_QUERY_INTERFACE .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | wdm.h (inclure Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |