функция обратного вызова 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.
Возвращаемый код | Описание |
---|---|
|
Запрос подключения выполнен успешно. |
|
Операция ожидается и будет завершена позже. Драйвер вызовет указанную функцию RequestCompletion (NDK_FN_REQUEST_COMPLETION) для завершения ожидающей операции. |
|
Сбой запроса из-за нехватки ресурсов.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как удаленная сеть недоступна. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса из-за недоступности удаленной системы узлов. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как удаленная система отказалась от запроса подключения. Это может быть вызвано отсутствием прослушивателя, ограничений невыполненной работы или активного отклонения запроса на подключение. Попытка подключения может быть получена.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как время ожидания запроса подключения истекло. Попытка подключения может быть извлечена. Значения времени ожидания выбираются поставщиками Network Direct, чтобы соответствовать соответствующим сетевым характеристикам.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как указанный локальный адрес уже используется.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как указанный локальный адрес не является допустимым адресом для адаптера.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как потребитель указал номер локального порта нулю, и поставщик Сетевого direct не смог выделить порт из эфемерного пространства портов (порты 49152-65535).
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Сбой запроса, так как подключение с сочетанием локального адреса, локального порта, удаленного адреса и удаленного порта уже существует.
Важные запрос может завершиться сбоем, а также асинхронно с этим кодом состояния.
|
|
Произошла ошибка. |
Замечания
NdkConnect инициирует запрос подключения с локального адреса на удаленный адрес.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
минимальный поддерживаемый сервер | Windows Server 2012 |
целевая платформа | Виндоус |
заголовка | ndkpi.h (include Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |