Поделиться через


Функция обратного вызова CBGETRSVPOBJECTS (lpmapi.h)

Функция cbGetRsvpObjects — это функция обратного вызова для LPM, асинхронно возвращая результаты для LPM_GetRsvpObjects запросов. LPM вызывают функцию cbGetRsvpObjects , чтобы асинхронно возвращать объекты данных политики в PCM для запроса LPM_GetRsvpObjects . LPM должен использовать функцию cbGetRsvpObjects , только если он вернул LPM_RESULTS_DEFER в запрос LPM_GetRsvpObjects PCM.

Синтаксис

CBGETRSVPOBJECTS Cbgetrsvpobjects;

ULONG * Cbgetrsvpobjects(
  [in] LPM_HANDLE LpmHandle,
  [in] RHANDLE RequestHandle,
  [in] int LpmError,
  [in] int RsvpObjectsCount,
  [in] RsvpObjHdr **ppRsvpObjects
)
{...}

Параметры

[in] LpmHandle

Уникальный дескриптор для LPM, как указано в LPM_Initialize. PCM проигнорирует любой результат, который не сопровождается допустимым дескриптором.

[in] RequestHandle

Уникальный дескриптор, который отличает этот запрос от всех остальных запросов, предоставленных из соответствующего запроса LPM_GetRsvpObjects .

[in] LpmError

Значение ошибки, используемое PCM для определения того, следует ли использовать объекты данных политики, возвращаемые с помощью этой функции. Любое значение, отличное от LPM_OK, приведет к тому, что PCM игнорирует содержимое *RsvpObjects.

Обратите внимание, что если LPM возвращает ошибку, он должен освободить буферы, выделенные во время обработки запроса LPM_GetRsvpObjects . Эти буферы должны были быть выделены с помощью функции MemoryAllocator , предоставленной в функции LPM_Initialize в качестве параметра FreeMemory .

Если объекты данных политики не возвращаются, для LpmError необходимо задать значение LPM_OK, для Параметра RsvpObjectsCount — нулевое значение, а для параметра *RsvpObjects — значение NULL. LPM может заставить SBM прекратить отправку сообщения RSVP, установив для LpmError значение LPV_DROP_MSG.

[in] RsvpObjectsCount

Количество возвращаемых объектов данных политики. Если объекты данных политики не возвращаются, для параметра LpmError необходимо задать значение LPM_OK, для параметра RsvpObjectsCount — нулевое значение, а для параметра *RsvpObjects — значение NULL.

[in] ppRsvpObjects

Массив указателей на объект данных политики. Буфер, содержащий объекты данных политики, должен быть выделен с помощью функции MemoryAllocator , предоставленной в функции LPM_Initialize . Диспетчер пропускной способности подсети (SBM) освободит объекты данных политики, когда они больше не нужны.

Если объекты данных политики не возвращаются, для LpmError необходимо задать значение LPM_OK, для Параметра RsvpObjectsCount — нулевое значение, а для параметра *RsvpObjects — значение NULL.

Возвращаемое значение

Возвращаемые значения определяются приложением, предоставляющим обратный вызов.

Комментарии

LPM не нужно отправлять параметры данных политики, если требуются только параметры по умолчанию. Поскольку содержимое объектов данных политики непрозрачно для PCM, PCM не будет выполнять преобразование заголовков и содержимого элементов политики из узла в сеть; PCM ожидает, что LPM будут создавать элементы политики в сетевом порядке, чтобы получатель элементов политики смог правильно проанализировать их. Однако заголовок объекта данных политики должен находиться на узле, чтобы позволить PCM объединять элементы политики (если это возможно или применимо).

От LPM, поддерживающих все типы PE, PCM ожидает полные объекты данных политики и необходимые параметры данных политики. Кроме того, PCM ожидает, что заголовок объекта данных политики будет находиться в порядке размещения; LPM отвечает за обработку преобразования параметров и элементов политики в порядке размещения в сеть.

Если какой-либо LPM возвращает LPV_DROP_MSG, SBM не будет отправлять сообщение об обновлении RSVP, но освободит объекты данных политики, возвращаемые другими LMS (те, которые не возвращали LPV_DROP_MSG, если таковые были). Если не отправлять сообщения об обновлении RSVP, состояние RSVP потока вышестоящий и нижестоящего потока начнет стареть и в конечном итоге будет удалено.

Примечание SBM отправляет сообщение об обновлении RSVP, даже если некоторые или все LMS не возвращают объекты данных политики своевременно, даже если такое исходящее сообщение RSVP может содержать не все объекты данных политики.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header lpmapi.h

См. также раздел

LPM_GetRsvpObjects

LPM_Initialize