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


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

Функция NdkConnect (NDK_FN_CONNECT) инициирует запрос подключения NDK.

Синтаксис

NDK_FN_CONNECT NdkFnConnect;

NTSTATUS NdkFnConnect(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
                                            const PSOCKADDR pSrcAddress,
  [in]                                      ULONG SrcAddressLength,
  [in]                                      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) для связывания с подключением.

pSrcAddress

Исходный адрес. Для AF_INET или AF_INET6 pSrcAddress является исходный IP-адрес и исходный порт ND.

[in] SrcAddressLength

Размер в байтах исходных данных адреса в параметре pSrcAddress.

[in] 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

Значение контекста, передаваемое параметру контекста функции обратного вызова, указанной в параметре RequestCompletion.

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

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

Возвращаемый код Описание
STATUS_SUCCESS
Запрос подключения выполнен успешно.
STATUS_PENDING
Операция ожидается и будет завершена позже. Драйвер вызовет указанную функцию RequestCompletion (NDK_FN_REQUEST_COMPLETION) для завершения ожидающей операции.
STATUS_INSUFFICIENT_RESOURCES
Сбой запроса из-за нехватки ресурсов.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_NETWORK_UNREACHABLE
Сбой запроса, так как удаленная сеть недоступна. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_HOST_UNREACHABLE
Сбой запроса из-за недоступности удаленной системы узлов. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_CONNECTION_REFUSED
Сбой запроса, так как удаленная система отказалась от запроса подключения. Это может быть вызвано отсутствием прослушивателя, ограничений невыполненной работы или активного отклонения запроса на подключение. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_IO_TIMEOUT
Сбой запроса, так как время ожидания запроса подключения истекло. Попытка подключения может быть извлечена. Значения времени ожидания выбираются поставщиками Network Direct, чтобы соответствовать соответствующим сетевым характеристикам.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_SHARING_VIOLATION
Сбой запроса, так как указанный локальный адрес уже используется.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_INVALID_ADDRESS
Сбой запроса, так как указанный локальный адрес не является допустимым адресом для адаптера.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_TOO_MANY_ADDRESSES
Сбой запроса, так как потребитель указал номер локального порта нулю, и поставщик Сетевого direct не смог выделить порт из эфемерного пространства портов (порты 49152-65535).
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
STATUS_ADDRESS_ALREADY_EXISTS
Сбой запроса, так как подключение с сочетанием локального адреса, локального порта, удаленного адреса и удаленного порта уже существует.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
 
Другие коды состояния
Произошла ошибка.

Замечания

NdkConnect инициирует запрос подключения с локального адреса на удаленный адрес.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях.
минимальный поддерживаемый сервер Windows Server 2012
целевая платформа Виндоус
заголовка ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

См. также

требования к времени существования объекта NDKPI

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_DISCONNECT

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP