IMiniportWaveCyclique ::NewStream, méthode (portcls.h)
La méthode NewStream
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 dans l’interface IMiniportWaveCycliqueStream de l’objet de flux. L’appelant spécifie une valeur de pointeurNULL valide et non pour ce paramètre.
[in, optional] OuterUnknown
Pointeur vers l’interface IUnknown d’un objet qui doit agréger l’objet de flux. 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
Nombre de broches à ouvrir. Si la méthode IMiniport ::GetDescription du pilote Miniport WaveCyclique génère un descripteur de filtre qui spécifie un total de n fabriques de broches sur le filtre, les valeurs valides pour les de paramètre épingle sont comprises dans la plage 0 à 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 FAUX 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 dans l’interface IDmaChannel de l’objet de canal DMA du pilote miniport. L’appelant spécifie une valeur de pointeurNULL valide et non pour ce paramètre. Pour plus d’informations, consultez la section Remarques suivante.
[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 dans 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 pointeurNULL valide et non pour ce paramètre.
Valeur de retour
NewStream
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié.
Remarques
La méthode NewStream
définit l’état initial du flux sur KSSTATE_STOP et sa position initiale sur zéro. (Voir IMiniportWaveCycliqueStream ::SetState et IMiniportWaveCycliqueStream ::GetPosition.)
Le pilote de port appelle uniquement les méthodes suivantes sur l’objet DmaChannel :
IDmaChannel ::AllocatedBufferSize
Les paramètres Stream, OuterUnknown, DmaChannelet ServiceGroup suivent les conventions de comptage de référence pour les objets COM.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | portcls.h (include Portcls.h) |
IRQL | PASSIVE_LEVEL |