Partager via


Méthode IMiniportWaveCyclic ::NewStream (portcls.h)

La NewStream méthode crée une nouvelle instance d’un flux logique associé à un canal physique spécifié.

Syntaxe

NTSTATUS NewStream(
  [out]          PMINIPORTWAVECYCLICSTREAM *Stream,
  [in, optional] PUNKNOWN                  OuterUnknown,
  [in]           POOL_TYPE                 PoolType,
  [in]           ULONG                     Pin,
  [in]           BOOLEAN                   Capture,
  [in]           PKSDATAFORMAT             DataFormat,
  [out]          PDMACHANNEL               *DmaChannel,
  [out]          PSERVICEGROUP             *ServiceGroup
);

Paramètres

[out] Stream

Pointeur de sortie pour le nouveau flux. Ce paramètre pointe vers une variable de pointeur allouée par l’appelant dans laquelle la méthode écrit un pointeur vers l’interface IMiniportWaveCyclicStream de l’objet de flux. L’appelant spécifie une valeur de pointeur non NULL valide pour ce paramètre.

[in, optional] OuterUnknown

Pointeur vers l’interface IUnknown d’un objet qui doit agréger l’objet stream. Ce paramètre est facultatif. Si l’agrégation n’est pas requise, l’appelant spécifie ce paramètre comme NULL.

[in] PoolType

Spécifie le type de pool de mémoire à partir duquel le stockage de l’objet de canal DMA doit être alloué. Ce paramètre sera l’un des types de pool non paginés définis dans l’énumération POOL_TYPE .

[in] Pin

Numéro de la broche à ouvrir. Si la méthode IMiniport ::GetDescription du pilote miniport WaveCyclic génère un descripteur de filtre qui spécifie un total de n fabriques de broches sur le filtre, les valeurs valides pour le paramètre Pin sont comprises entre 0 et n-1.

[in] Capture

Spécifie s’il faut créer un flux de capture ou un flux de rendu. Ce paramètre est TRUE pour un canal de capture (entrée) et FALSE pour un canal de lecture (sortie).

[in] DataFormat

Pointeur vers une structure KSDATAFORMAT indiquant le format à utiliser pour cette instance.

[out] DmaChannel

Pointeur de sortie vers le canal DMA. Ce paramètre pointe vers une variable de pointeur allouée par l’appelant dans laquelle la méthode écrit un pointeur vers l’interface IDmaChannel de l’objet canal DMA du pilote miniport. L’appelant spécifie une valeur de pointeur non NULL valide pour ce paramètre. Pour plus d'informations, consultez la section Notes qui suit.

[out] ServiceGroup

Pointeur de sortie pour le groupe de services. Ce paramètre pointe vers une variable de pointeur allouée par l’appelant dans laquelle la méthode écrit un pointeur vers l’interface IServiceGroup de l’objet de groupe de services du flux. Il s’agit du groupe de services inscrit pour la notification d’interruption. L’appelant spécifie une valeur de pointeur non NULL valide pour ce paramètre.

Valeur retournée

NewStream retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié.

Remarques

La NewStream méthode définit l’état initial du flux sur KSSTATE_STOP et sa position initiale sur zéro. (Voir IMiniportWaveCyclicStream ::SetState et IMiniportWaveCyclicStream ::GetPosition.)

Le pilote de port appelle uniquement les méthodes suivantes sur l’objet DmaChannel :

IDmaChannel ::AllocationBufferSize

IDmaChannel ::BufferSize

IDmaChannel ::CopyFrom

IDmaChannel ::CopyTo

IDmaChannel ::SetBufferSize

IDmaChannel ::SystemAddress

Les paramètres Stream, OuterUnknown, DmaChannel et ServiceGroup 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

IDmaChannel

IMiniport ::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE