функция обратного вызова NDK_FN_CONNECT_WITH_SHARED_ENDPOINT (ndkpi.h)
Функция NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) инициирует запрос на подключение NDK с общего локального адреса к удаленному адресу.
Синтаксис
NDK_FN_CONNECT_WITH_SHARED_ENDPOINT NdkFnConnectWithSharedEndpoint;
NTSTATUS NdkFnConnectWithSharedEndpoint(
[in] NDK_CONNECTOR *pNdkConnector,
[in] NDK_QP *pNdkQp,
[in] NDK_SHARED_ENDPOINT *pNdkSharedEndpoint,
const PSOCKADDR pDestAddress,
[in] ULONG DestAddressLength,
[in] ULONG InboundReadLimit,
[in] ULONG OutboundReadLimit,
[_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
[in] ULONG PrivateDataLength,
[in] NDK_FN_REQUEST_COMPLETION RequestCompletion,
[in, optional] PVOID RequestContext
)
{...}
Параметры
[in] pNdkConnector
Указатель на объект соединителя NDK (NDK_CONNECTOR).
[in] pNdkQp
Указатель на объект пары очередей NDK (QP) (NDK_QP), который необходимо связать с подключением.
[in] pNdkSharedEndpoint
Указатель на объект общей конечной точки NDK (NDK_SHARED_ENDPOINT), который определяет локальный адрес для подключения.
pDestAddress
Адрес назначения. Для AF_INET или AF_INET6 pDestAddress — ip-адрес назначения и порт ND назначения.
[in] DestAddressLength
Размер в байтах данных адреса назначения в параметре pDestAddress.
[in] InboundReadLimit
Предоставленное потребителем максимальное количество входящих выполняемых операций чтения, разрешенное на QP. Если базовый поставщик имеет более низкое значение MaxInboundReadLimit в структуре NDK_ADAPTER_INFO , поставщик ограничит предоставленное потребителем значение до максимального значения поставщика. Если одноранговый узел имеет меньшее значение OutboundReadLimit , поставщик будет использовать это значение в качестве действующего inboundReadLimit. Потребитель может получить действующий inboundReadLimit , вызвав функцию NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[in] OutboundReadLimit
Предоставленное потребителем максимальное количество исходящих выполняемых операций чтения, разрешенное на QP. Если базовый поставщик имеет более низкое значение MaxOutboundReadLimit в структуре NDK_ADAPTER_INFO , поставщик ограничит предоставленное потребителем значение до максимального значения поставщика. Если одноранговый узел имеет более низкий уровень InboundReadLimit, поставщик будет использовать это значение в качестве действующего OutboundReadLimit. Потребитель может получить действующий OutboundReadLimit , вызвав функцию NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData
Указатель на личные данные, отправляемые с помощью запроса на подключение.
[in] PrivateDataLength
Длина (в байтах) частных данных, предоставляемых в параметре pPrivateData .
[in] RequestCompletion
Указатель на подпрограмму обратного вызова завершения запроса NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).
[in, optional] RequestContext
Значение контекста, передаваемое параметру Context функции обратного вызова, указанной в параметре RequestCompletion .
Возвращаемое значение
Функция NdkConnectWithSharedEndpoint возвращает один из следующих кодов NTSTATUS.
Код возврата | Описание |
---|---|
|
Запрос на подключение выполнен успешно. |
|
Операция находится в состоянии ожидания и будет завершена позже. Драйвер вызовет указанную функцию RequestCompletion (NDK_FN_REQUEST_COMPLETION) для завершения ожидающей операции. |
|
Запрос завершился сбоем из-за нехватки ресурсов.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Сбой запроса, так как удаленная сеть недоступна. Попытка подключения может быть повторна.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Сбой запроса, так как удаленная система недоступна. Попытка подключения может быть повторна.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Сбой запроса, так как удаленная система отклонила запрос на подключение. Это может быть вызвано отсутствием прослушивателя, ограничениями невыполненной работы или тем, что одноранговый узел активно отклоняет запрос на подключение. Попытка подключения может быть повторна.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Сбой запроса, так как истекло время ожидания запроса на подключение. Попытка подключения может быть повторна. Значения времени ожидания выбираются поставщиками Network Direct в соответствии с соответствующими характеристиками сети.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Сбой запроса, так как подключение с сочетанием локального адреса, локального порта, удаленного адреса и удаленного порта уже существует.
Важно Запрос может завершиться как встроенным, так и асинхронным с этим кодом состояния.
|
|
Произошла ошибка. |
Комментарии
NdkConnectWithSharedEndpoint инициирует запрос на подключение с общего локального адреса к определенному удаленному адресу. NdkConnectWithSharedEndpoint позволяет потребителю NDK использовать один и тот же локальный адрес (например, 10.1.1.1:9999) для многих исходящих подключений, если адреса назначения для подключений отличаются.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Windows |
Header | ndkpi.h (включая Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |