Méthode IPortWavePci ::NewMasterDmaChannel (portcls.h)

La NewMasterDmaChannel méthode crée une nouvelle instance d’un canal DMA master bus.

Syntaxe

NTSTATUS NewMasterDmaChannel(
                 PDMACHANNEL   *OutDmaChannel,
  [in, optional] PUNKNOWN      OuterUnknown,
  [in]           POOL_TYPE     PoolType,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           BOOLEAN       ScatterGather,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           BOOLEAN       IgnoreCount,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed,
  [in]           ULONG         MaximumLength,
  [in]           ULONG         DmaPort
);

Paramètres

OutDmaChannel

[in, optional] 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] PoolType

Spécifie le type de pool de stockage à partir duquel l’objet doit être alloué. Il s’agit d’une valeur d’énumération POOL_TYPE . Spécifiez un type de pool non paginé pour ce paramètre.

[in, optional] ResourceList

Pointeur vers la liste de ressources du pilote miniport, qui est un objet IResourceList . Ce paramètre est facultatif et peut être spécifié comme NULL. Actuellement NewMasterDmaChannel , la méthode n’utilise pas ce paramètre.

[in] ScatterGather

Demande que le canal DMA prend en charge la diffusion/la collecte de données DMA. Définissez toujours ce paramètre sur TRUE.

[in] Dma32BitAddresses

Spécifie l’utilisation d’adresses 32 bits pour les opérations DMA.

[in] Dma64BitAddresses

Spécifie l’utilisation d’adresses 64 bits pour les opérations DMA.

[in] IgnoreCount

Indique s’il faut ignorer le compteur de transfert du contrôleur DMA. Défini sur TRUE si le contrôleur DMA de cette plateforme ne gère pas de compteur de transfert précis et nécessite donc une solution de contournement.

[in] DmaWidth

Non utilisé. Définissez sur (DMA_WIDTH)(-1).

[in] DmaSpeed

Non utilisé. Définissez sur (DMA_SPEED)(-1).

[in] MaximumLength

Nombre maximal d’octets dans la mémoire tampon qui seront associés à ce canal DMA.

[in] DmaPort

Non utilisé. Définit la valeur 0.

Valeur retournée

NewMasterDmaChannel retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié.

Remarques

Les définitions des paramètres d’appel de la NewMasterDmaChannel méthode sont similaires à celles des membres de la structure DEVICE_DESCRIPTION portant les mêmes noms.

Spécifiez le paramètre PoolType comme l’un des types de pool non paginés définis dans l’énumération POOL_TYPE. L’objet canal DMA ne doit pas résider dans la mémoire paginée, car plusieurs des méthodes de l’interface IDmaChannel peuvent être appelées à partir de l’DISPATCH_LEVEL IRQL.

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

IPortWavePci

IResourceList

POOL_TYPE