Méthode IPortWaveCyclic ::NewSlaveDmaChannel (portcls.h)
La NewSlaveDmaChannel
méthode crée une nouvelle instance d’un canal DMA subordonné.
Syntaxe
NTSTATUS NewSlaveDmaChannel(
[out] PDMACHANNELSLAVE *DmaChannel,
[in] PUNKNOWN OuterUnknown,
[in] PRESOURCELIST ResourceList,
[in] ULONG DmaIndex,
[in] ULONG MaximumLength,
[in] BOOLEAN DemandMode,
[in] DMA_SPEED DmaSpeed
);
Paramètres
[out] DmaChannel
Pointeur vers une variable de pointeur allouée par l’appelant dans laquelle la méthode écrit un pointeur vers l’interface IDmaChannelSlave du nouvel objet de canal DMA. Spécifiez une valeur de pointeur non NULL valide pour ce paramètre.
[in] OuterUnknown
Pointeur vers l’interface IUnknown d’un objet qui doit agréger l’objet de canal DMA. Ce paramètre est facultatif. Si l’agrégation n’est pas requise, spécifiez ce paramètre comme NULL.
[in] ResourceList
Pointeur vers un objet IResourceList . Cette liste de ressources contient la ressource qui décrit le canal DMA.
[in] DmaIndex
Index dans la liste des ressources du descripteur de canal DMA. La fonction utilise cette valeur comme paramètre d’appel à la méthode IResourceList ::FindxxxEntry de l’objet ResourceList.
[in] MaximumLength
Longueur maximale en octets de la mémoire tampon DMA cyclique qui sera associée à ce canal.
[in] DemandMode
Indique si l’appareil associé au canal DMA prend en charge le mode demande.
[in] DmaSpeed
La vitesse DMA peut être spécifiée comme l’une des valeurs d’énumération DMA_SPEED suivantes : Compatible, TypeA, TypeB, TypeC ou TypeF.
Valeur retournée
NewSlaveDmaChannel
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié.
Remarques
Notes
Microsoft prend en charge un environnement diversifié et inclusif. Cet article contient des références à la terminologie que le guide de style Microsoft pour la communication sans préjugés reconnaît comme exclusion. Le mot ou l’expression est utilisé dans cet article à des fins de cohérence, car il apparaît actuellement dans le logiciel. Lorsque le logiciel est mis à jour pour supprimer la langue, cet article est mis à jour pour être aligné.
Les paramètres MaximumLength, DemandMode et DmaSpeed ont une signification similaire aux membres de la structure DEVICE_DESCRIPTION portant les mêmes noms.
Un appareil WaveCyclic qui ne dispose pas de fonctionnalités matérielles DMA est appelé appareil subordonné. En revanche, un appareil master dispose d’un matériel DMA de gestion de bus intégré. Un appareil subordonné doit s’appuyer sur le contrôleur DMA système pour effectuer tous les transferts de données dont il a besoin. La NewSlaveDmaChannel
méthode crée un objet de canal DMA pour un appareil subordonné. Pour créer un objet de canal DMA pour un appareil master, appelez plutôt la méthode IPortWaveCyclic ::NewMasterDmaChannel. L’exemple de pilote audio sb16 dans microsoft Windows Driver Kit (WDK) est un exemple de pilote miniport WaveCyclic pour un appareil subordonné. Pour plus d’informations sur les appareils master et subordonnés, consultez IDmaChannel et IDmaChannelSlave.
Les paramètres DmaChannel, OuterUnknown et ResourceList suivent les conventions de comptage des références pour les objets COM.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | portcls.h (include Portcls.h) |
IRQL | PASSIVE_LEVEL |