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 Context de la structure BUS_INTERFACE_STANDARD de 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 cartographiques que le pilote peut allouer pour n’importe quelle opération de transfert DMA. L’appelant doit allouer une variable LONG pour recevoir ces données.
Valeur de retour
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 de BUS_INTERFACE_STANDARD ; si c’est le cas, IoGetDmaAdapter appelle la routine pointée par la GetDmaAdapter membre 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 adaptateur en cours d’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 de BUS_INTERFACE_STANDARD tout en restant à IRQL = PASSIVE_LEVEL en émettant une demande de IRP_MN_QUERY_INTERFACE.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Bureau |
d’en-tête | wdm.h (include Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |