Partager via


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

Voir aussi

BUS_INTERFACE_STANDARD

DEVICE_DESCRIPTION

DMA_ADAPTER

IoGetDmaAdapter