функция обратного вызова NDK_FN_GET_CONNECTION_DATA (ndkpi.h)

Функция NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) получает значения ограничения чтения и частные данные, отправленные одноранговым элементом.

Синтаксис

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

NTSTATUS NdkFnGetConnectionData(
  [in]            NDK_CONNECTOR *pNdkConnector,
  [out, optional] ULONG *pInboundReadLimit,
  [out, optional] ULONG *pOutboundReadLimit,
                  PVOID pPrivateData,
                  ULONG *pPrivateDataLength
)
{...}

Параметры

[in] pNdkConnector

Указатель на объект соединителя NDK (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

В этом расположении возвращается максимальное количество входящих операций чтения, разрешенных для QP.

[out, optional] pOutboundReadLimit

В этом расположении возвращается максимальное количество исходящих выполняемых операций чтения, разрешенных для QP.

pPrivateData

Указатель на возвращаемые частные данные.

pPrivateDataLength

Длина (в байтах) частных данных, предоставляемых в параметре pPrivateData .

Примечание Выходное значение не указывает фактическую длину частных данных, хранящихся в буфере. Потребители NDK должны согласовывать формат и длину фактических частных данных. Дополнительные сведения о частных данных см. в разделе Примечания.
 

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

Функция NdkGetConnectionData возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Операция выполнена успешно.
STATUS_BUFFER_TOO_SMALL
Значение в параметре *pPrivateDataLength указывает размер буфера, который был слишком мал для хранения частных данных подключения. *pPrivateDataLength обновляется с требуемым размером.
Другие коды состояния
Произошла ошибка.

Комментарии

Функция NdkGetConnectionData получает частные данные, отправляемые одноранговым элементом, с помощью запросов на подключение, принятие или отклонение, а также действующие значения ограничения на чтение для входящего и исходящего трафика. Эти значения являются производными от запрошенных локальных и удаленных одноранговых значений и максимальных ограничений поставщика.

Чтобы получить доступ к частным данным и значениям ограничения входящего чтения (IRD) и ограничения на чтение для исходящего трафика (ORD) с активной стороны, потребитель NDK может вызвать NdkGetConnectionData для объекта соединителя , переданного в функцию NDK_FN_CONNECT_EVENT_CALLBACK .

Для доступа к частным данным и эффективным значениям IRD и ORD с пассивной стороны потребитель может вызвать NdkGetConnectionData для объекта соединителя , для которого NDK_FN_CONNECT или NDK_FN_CONNECT_WITH_SHARED_ENDPOINT успешно завершен. Потребитель NDK не будет вызывать эту функцию после вызова функции NDK_FN_ACCEPT на пассивной стороне или функции NDK_FN_COMPLETE_CONNECT на активной стороне.

Если параметр pPrivateData имеет значение NULL, а *pPrivateDataLength равен нулю, поставщик NDK должен вернуть STATUS_SUCCESS и сохранить требуемый размер буфера частных данных (RDS) в *pPrivateDataLength.

ПримечаниеТребуемый размер буфера частных данных (RDS) не указывает, что одноранговый узел отправил столько частных данных. Потребитель NDK должен иметь на обоих концах общую схему, чтобы принимающий конец определял, есть ли в буфере частных данных какие-либо частные данные. RDS может отличаться для каждого подключения.
 
Если pPrivateData имеет значение NULL, а *pPrivateDataLength больше нуля, это недопустимый запрос. Потребитель никогда не должен делать этого.

Если pPrivateData не имеет значения NULL, поставщик должен скопировать частные данные в буфер pPrivateData до меньшего значения *pPrivateDataLength или RDS в байтах.

Если значение *pPrivateDataLength больше или равно RDS, поставщик должен вернуть STATUS_SUCCESS. В противном случае поставщик должен вернуть STATUS_BUFFER_TOO_SMALL. В обоих случаях поставщик должен сохранить RDS в *pPrivateDataLength перед возвратом.

Требования

Требование Значение
Минимальная версия клиента Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях.
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header ndkpi.h (включая Ndkpi.h)
IRQL <=DISPATCH_LEVEL

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

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH