fonction LPM_GetRsvpObjects (lpmapi.h)

La fonction LPM_GetRsvpObjects permet au PCM d’interroger les LPM pour les données de stratégie. Les données sont transférées par le PCM au SBM pour les inclure dans les messages d’actualisation RSVP qui nécessitent des données de stratégie. Les résultats de la fonction LPM_GetRsvpObjects peuvent être retournés de manière synchrone ou asynchrone. Les résultats asynchrones sont retournés en appelant la fonction de rappel cbGetRsvpObjects .

Syntaxe

ULONG LPM_GetRsvpObjects(
  [in]  RHANDLE       PcmReqHandle,
  [in]  ULONG         MaxPdSize,
  [in]  RSVP_HOP      *SendingIntfAddr,
  [in]  RSVP_MSG_OBJS *pRsvpMsgObjs,
  [out] int           *pRsvpObjectsCount,
  [out] RsvpObjHdr    ***pppRsvpObjects,
  [out] void          *Reserved
);

Paramètres

[in] PcmReqHandle

Handle unique qui distingue cette demande de toutes les autres requêtes. Les LPM doivent utiliser ce PcmReqHandle lors du retour des résultats de manière asynchrone à l’aide de la fonction de rappel cbGetRsvpObjects .

[in] MaxPdSize

Taille maximale autorisée des données de stratégie retournées.

[in] SendingIntfAddr

Pointeur vers l’interface sur laquelle le message RSVP sera envoyé. L’adresse IP de l’interface d’envoi est fournie en tant qu’objet RSVP HOP, ce qui équivaut à PHOP pour les messages PATH et NHOP pour les messages RESV. Le handle d’interface logique est défini sur l’index SNMP. Notez que les numéros d’index d’interface peuvent changer avec l’ajout et la suppression d’interfaces, en raison des fonctionnalités Plug-and-Play de Windows 2000.

[in] pRsvpMsgObjs

Objets RSVP générés par le SBM. Tous les objets RSVP sont dans l’ordre de l’hôte. Les objets du tableau suivant sont fournis.

Valeur Signification
RsvpMsgType
Type de message RSVP, tel que défini dans le protocole RSVP. Cela peut être utilisé par un LPM pour localiser l’état à partir duquel il peut générer des objets de données de stratégie.
RsvpSession
Session RSVP pour laquelle le SBM nécessite des informations de stratégie. Cela peut être utilisé par un LPM pour localiser l’état à partir duquel il peut générer des objets de données de stratégie.
RsvpHop
HOP vers lequel le message RSVP est transféré. Étant donné qu’un message PATH est envoyé directement à l’adresse de session, ce pointeur HOP a la valeur NULL pour les messages PATH. Pour tous les autres messages, l’adresse de l’objet HOP est l’adresse du nœud et le LIH n’est pas utilisé.
RsvpStyle
Style de réservation RSVP, tel que défini dans le protocole RSVP. Si un message RESV est envoyé par le SBM, RsvpStyle spécifie le style de réservation. Si un message PATH est envoyé, RsvpStyle a la valeur NULL.
RsvpScope
Étendue RSVP d’un message RESV sortant, tant que l’objet SCOPE n’est pas NULL. Utilisé uniquement pour les réservations de style WF. Pour tous les autres styles de réservation RSVP, RsvpScope a la valeur NULL.
FlowDescCount
Nombre de descripteurs de flux.
FlowDescList
Tableau de pointeurs de descripteur de flux dans le message RSVP sortant. Pour les messages PATH, il n’y aura qu’un seul FlowDescriptor contenant le modèle d’expéditeur et la spécification Tspec de l’expéditeur.

[out] pRsvpObjectsCount

Pointeur vers le nombre d’objets de stratégie retournés. Lorsqu’un LPM retourne immédiatement des résultats, les paramètres pRsvpObjectsCount et pppRsvpObjects doivent être utilisés pour retourner des objets de données de stratégie. Notez que la mémoire tampon contenant les objets de données de stratégie doit être allouée à l’aide de la fonction d’allocation de mémoire PALLOCMEM, fournie dans la fonction LPM_Initialize .

[out] pppRsvpObjects

Pointeur vers un tableau de pointeurs d’objets de données de stratégie retournés en réponse à la demande. Notez que la mémoire tampon contenant les objets de données de stratégie et ce tableau de pointeurs d’objets de données de stratégie doivent être allouées à l’aide de la fonction d’allocation de mémoire PALLOCMEM, fournie dans la fonction LPM_Initialize .

[out] Reserved

Réservé pour un usage futur.

Valeur retournée

Cette fonction retourne ULONG.

Remarques

Si un LPM n’a pas de données de stratégie à retourner à partir de l’appel de fonction LPM_GetRsvpObjects , il doit retourner de manière synchrone LPM_RESULT_READY, définir pppRsvpObjects sur NULL et définir pRsvpObjectsCount sur zéro. Si un retour synchrone n’est pas possible, un LPM doit retourner LPM_RESULT_DEFER et renvoyer le résultat en appelant la fonction de rappel cbGetRsvpObjects . Si le LPM n’a pas d’objets de données de stratégie à retourner, il peut définir pppRsvpObjects sur NULL et pRsvpObjectsCount sur zéro.

Si un LPM retourne LPV_DROP_MSG, le SBM n’envoie pas de message d’actualisation RSVP et libère les objets de données de stratégie retournés par d’autres LPM (ceux qui n’ont pas retourné LPM_DROP_MSG, le cas échéant). En n’envoyant pas de messages d’actualisation RSVP, l’état RSVP d’un flux à la fois amont et en aval commence à vieillir et est finalement supprimé.

Note Le SBM envoie le message d’actualisation RSVP même si certains ou tous les LPM ne parviennent pas à renvoyer les objets de données de stratégie en temps opportun, même si un tel message RSVP sortant peut ne pas contenir tous les objets de données de stratégie qu’il doit.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête lpmapi.h

Voir aussi

LPM_Initialize

PALLOCMEM

cbAdmitResult

cbGetRsvpObjects