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
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 |