Partager via


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

Voir aussi

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic ::NewMasterDmaChannel

IResourceList