LPM_AdmitRsvpMsg-Funktion (lpmapi.h)

Die LPM_AdmitRsvpMsg-Funktion wird vom PCM aufgerufen, um RSVP-Nachrichten für richtlinienbasierte Entscheidungen zur Zugangssteuerung an den LPM zu übergeben. Ergebnisse aus dem Aufruf LPM_AdmitRsvpMsg können entweder synchron oder asynchron an das PCM zurückgegeben werden, indem der Rückgabewert entsprechend festgelegt wird. Asynchrone Ergebnisse sollten durch Aufrufen der cbAdmitResult-Funktion zurückgegeben werden.

Syntax

ULONG LPM_AdmitRsvpMsg(
  [in]  RHANDLE         PcmReqHandle,
  [in]  RSVP_HOP        *pRecvdIntf,
  [in]  RSVP_MSG_OBJS   *pRsvpMsgObjs,
  [in]  int             RcvdRsvpMsgLength,
  [in]  UCHAR           *RcvdRsvpMsg,
  [out] ULONG           *pulPcmActionFlags,
  [out] POLICY_DECISION *pPolicyDecisions,
  [out] void            *Reserved
);

Parameter

[in] PcmReqHandle

Eindeutiges Handle, das diese Anforderung aus allen anderen Anforderungen identifiziert. LPMs müssen dieses Handle an den PCM übergeben, wenn Ergebnisse asynchron für eine einzelne Anforderung zurückgegeben werden, indem cbAdmitResult aufgerufen wird. Der PcmReqHandle-Parameter wird ungültig, sobald Ergebnisse zurückgegeben werden, sodass jede Anforderung ihre eigene eindeutige PcmReqHandle vom PCM abrufen muss.

[in] pRecvdIntf

Zeiger auf die Schnittstelle, auf der die Nachricht empfangen wurde. Die IP-Adresse der empfangenen Schnittstelle wird als RSVP-HOP-Objekt angegeben, und das Handle für logische Schnittstellen wird auf den SNMP-Index festgelegt. Beachten Sie, dass sich schnittstellenindexnummern aufgrund der Plug & Play Features von Windows 2000 mit dem Hinzufügen und Löschen von Schnittstellen ändern können.

[in] pRsvpMsgObjs

Von RSVP empfangene Objekte. Der SBM entpackt empfangene RSVP-Nachrichten in einzelne Objekte und konvertiert den Inhalt solcher RSVP-Objekte in die Hostreihenfolge und stellt sie in der RSVP_MSG_OBJS-Struktur bereit, die in Lpmapi.h definiert ist. Die folgenden Objekte werden bereitgestellt.

[in] RcvdRsvpMsgLength

Länge der empfangenen RSVP-Nachricht in Bytes.

Wert Bedeutung
RsvpMsgType
RSVP-Nachrichtentyp, wie vom RSVP-Protokoll definiert.
RsvpSession
Zeiger auf die RSVP-Sitzung, wie vom RSVP-Protokoll definiert. Beachten Sie, dass sich die Inhalte in der Hostreihenfolge befinden.
RsvpFromHop
Zeiger auf den Hop, von dem die RSVP-Nachricht empfangen wurde. Beachten Sie, dass sich die Inhalte in der Hostreihenfolge befinden.
RsvpScope
Zeiger auf das RSVP-Bereichsobjekt.
RsvpStyle
Zeiger auf den RSVP-Reservierungsstil, wie durch das RSVP-Protokoll definiert. Beachten Sie, dass sich die Inhalte in der Hostreihenfolge befinden.
FlowDescListCount
Anzahl der Flussdeskriptoren.
FlowDescList
Array von Flussdeskriptorzeigern.
PolicyDataCount
Anzahl der Richtliniendatenobjekte.
PolicyDataObjects
Array von Richtliniendatenobjektzeigern. Beachten Sie, dass nur der RSVP-Objektheader und die Richtlinienoptionen in die Hostreihenfolge konvertiert werden, richtlinienelementheader und -inhalte jedoch in der Netzwerkreihenfolge verbleiben. Der PCM kann letzteres nicht in die Hostreihenfolge konvertieren, da die PCM richtlinienelemente nicht analysieren kann. Beachten Sie, dass der von Microsoft bereitgestellte LPM Msidlpm.dll richtlinienelementinhalte in host order umordnet.
ErrorSpec
Zeiger auf das empfangene RSVP-ERROR_SPEC-Objekt.

[in] RcvdRsvpMsg

RSVP-Nachricht in Netzwerkreihenfolge.

[out] pulPcmActionFlags

Flags, die verwendet werden, um eine vom PCM angeforderte Aktion anzugeben. Der LPM kann diesen Parameter derzeit auf FORCE_IMMEDIATE_REFRESH festlegen, um eine sofortige Aktualisierung der zugelassenen Nachricht anzufordern. Ein LPM kann dieses Flag festlegen, wenn eine Änderung der Richtliniendaten erkannt wird, die sofort weitergeleitet werden soll. Vor dem Senden fordert der SBM den LPM auf, Richtlinieninformationen für die ausgehende Aktualisierungsnachricht anzugeben.

Beachten Sie, dass LPMs dieses Flag nicht festlegen müssen, wenn eine neue PATH-Nachricht akzeptiert wird. SBMs senden die neue PATH-Nachricht automatisch an Empfänger.

[out] pPolicyDecisions

Zeiger auf Richtlinienentscheidungen. Ein LPM muss diesen Puffer mithilfe der Speicherzuweisung zuordnen, die im LPM_Initialize Funktionsaufruf bereitgestellt wird. der SBM gibt den Puffer frei, nachdem er auf pPolicyDecisions einwirkt. Der PCM prüft pPolicyDecisions nur, wenn die Funktion LPM_RESULT_READY zurückgibt. Synchrone Richtlinienentscheidungen müssen für jeden Flow in FlowDescList zurückgegeben werden, und die Anzahl der Einträge im pPolicyDecisions-Array muss gleich FlowDescListCount sein. Jede Richtlinienentscheidung besteht aus den in der folgenden Tabelle aufgeführten Werten.

Wert Bedeutung
LpmPriorityValue
Zeiger auf einen Puffer, um den LPM-Prioritätswert vom LPM zu erhalten. Beachten Sie, dass der PCM diesen Parameter nur dann ansieht, wenn der Rückgabewert von LPM_AdmitRsvpMsg auf LPM_RESULT_READY festgelegt ist. Wenn das LPM synchron Ergebnisse zurückgibt, muss dieser Parameter auf einen gültigen Prioritätswert festgelegt werden. Weitere Informationen finden Sie unter Lokales Richtlinienmodul .
PolicyErrorCode
Zeiger auf einen Richtlinienfehlercode. Wenn die Anforderung synchron abgelehnt wird, müssen LPMs einen Wert ungleich null für diesen Parameter angeben. Der SBM kopiert diesen Wert in Kombination mit PolicyErrorValue beim Senden von PATHERR- oder RESVERR-Nachrichten in das RSVP-Fehlerobjekt (als Ergebnis eines Fehlers bei der richtlinienbasierten Zulassungssteuerung, um einen Grund für die Ablehnung der Anforderung anzugeben).
PolicyErrorValue
Zeiger auf einen Richtlinienfehlerwert. Wenn die Anforderung synchron abgelehnt wird, müssen LPMs einen Wert ungleich null für diesen Parameter angeben. Der SBM kopiert diesen Wert in Kombination mit PolicyErrorCode beim Senden von PATHERR- oder RESVERR-Nachrichten in das RSVP-Fehlerobjekt (als Ergebnis eines Fehlers bei der richtlinienbasierten Zulassungssteuerung, um einen Grund für die Ablehnung der Anforderung anzugeben).
 

Da der Rückgabe-POLICY_DECISION eines LPM ein Array ist, kann ein LPM eine Teilmenge der Flows in FlowDescList akzeptieren und die restlichen Daten ggf. ablehnen. Da beispielsweise RESV-Nachrichten im FF-Stil mehrere Flows enthalten können, generiert der SBM eine separate RESVERR-Nachricht für jeden abgelehnten Flow, wenn ein LPM einige Flows ablehnt und andere akzeptiert. Vor dem Senden der RESVERR-Nachricht ruft PCM jedes LPM auf, um Richtliniendatenobjekte für jede ausgehende RESVERR-Nachricht anzugeben.

[out] Reserved

Für die zukünftige Verwendung reserviert.

Rückgabewert

Diese Funktion gibt ULONG zurück.

Hinweise

Der Subnet Bandwidth Manager (SBM) leitet RSVP PATH-, RESV-, PATHERR-, RESVERR-, PATH_TEAR- und RESV_TEAR-Nachrichten an den PCM weiter. Wenn eine Anforderung die auf LPM-Richtlinien basierende Zulassung besteht (in diesem Fall wird der erfolgreiche status über das PCM an den SBM übergeben), führt der SBM im Rahmen seiner RSVP-Verarbeitung ressourcenbasierte Zugriffssteuerung durch. Wenn die ressourcenbasierte Zugriffssteuerung fehlschlägt, weist der SBM die PCM an, jeden LPM anzuweisen, seinen Zustand über die LPM_CommitResv-Funktion zu löschen. In solchen Fällen erstellt der SBM (und nicht die LPMs) die erforderliche RSVP-Fehlermeldung.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile lpmapi.h

Weitere Informationen

LPM_Initialize

cbAdmitResult

cbGetRsvpObjects