функция обратного вызова NDK_FN_ACCEPT (ndkpi.h)
Функция NdkAccept (NDK_FN_ACCEPT) принимает входящий запрос на подключение через объект прослушивателя.
Синтаксис
NDK_FN_ACCEPT NdkFnAccept;
NTSTATUS NdkFnAccept(
[in] NDK_CONNECTOR *pNdkConnector,
[in] NDK_QP *pNdkQp,
[in] ULONG InboundReadLimit,
[in] ULONG OutboundReadLimit,
[_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
[in] ULONG PrivateDataLength,
[in, optional] NDK_FN_DISCONNECT_EVENT_CALLBACK DisconnectEvent,
[in, optional] PVOID DisconnectEventContext,
[in] NDK_FN_REQUEST_COMPLETION RequestCompletion,
[in, optional] PVOID RequestContext
)
{...}
Параметры
[in] pNdkConnector
Указатель на объект соединителя NDK (NDK_CONNECTOR).
[in] pNdkQp
Указатель на объект пары очередей NDK (QP) (NDK_QP), который необходимо связать с подключением.
[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, optional] DisconnectEvent
Точка входа для необязательной функции обратного вызова уведомления об отключении NdkDisconnectEventCallback (NDK_FN_DISCONNECT_EVENT_CALLBACK). Поставщик вызывает эту функцию обратного вызова при отключении однорангового узла.
[in, optional] DisconnectEventContext
Значение контекста, передаваемое параметру DisconnectEventContext функции обратного вызова, указанной в параметре DisconnectEvent .
[in] RequestCompletion
Указатель на подпрограмму обратного вызова завершения запроса NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).
[in, optional] RequestContext
Значение контекста, передаваемое параметру Context функции обратного вызова, указанной в параметре RequestCompletion .
Возвращаемое значение
Функция NDK_FN_ACCEPT возвращает один из следующих кодов NTSTATUS.
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Операция находится в состоянии ожидания и будет завершена позже. Драйвер вызовет указанную функцию RequestCompletion (NDK_FN_REQUEST_COMPLETION) для завершения ожидающей операции. |
|
Соединительный узел отказался от установки ожидающего подключения. |
|
Одноранговый узел не вызывал функцию CompleteConnect (NDK_FN_COMPLETE_CONNECT) для выполнения ожидающего запроса на подключение. |
|
Произошла ошибка. |
Комментарии
Потребитель NDK вызывает NdkAccept , чтобы принять входящий запрос на подключение через объект прослушивателя.
Функция NdkCreateListener (NDK_FN_CREATE_LISTENER) создает объект прослушивателя NDK и предоставляет функцию NdkConnectEventCallback (NDK_FN_CONNECT_EVENT_CALLBACK).
Функция NdkConnectEventCallback используется поставщиком NDK для уведомления потребителя о каждом входящем запросе на подключение.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Windows |
Header | ndkpi.h (включая Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
См. также раздел
Требования к времени существования объектов NDKPI