NDK_FN_CREATE_SHARED_ENDPOINT回调函数 (ndkpi.h)

NdkCreateSharedEndpointNDK_FN_CREATE_SHARED_ENDPOINT) 函数创建 NDK 共享终结点。

语法

NDK_FN_CREATE_SHARED_ENDPOINT NdkFnCreateSharedEndpoint;

NTSTATUS NdkFnCreateSharedEndpoint(
  [in]           NDK_ADAPTER *pNdkAdapter,
                 const PSOCKADDR pAddress,
  [in]           ULONG AddressLength,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_SHARED_ENDPOINT **ppNdkSharedEndpoint
)
{...}

参数

[in] pNdkAdapter

指向 NDK 适配器对象的指针(NDK_ADAPTER)。

pAddress

用于启动传出连接的本地地址。 对于 AF_INET 或 AF_INET6 pAddress 包含本地 IP 地址和本地 ND 端口。

[in] AddressLength

pAddress 参数的本地地址数据的大小(以字节为单位)。

[in] CreateCompletion

指向完成 NDK 对象的创建 NdkCreateCompletionNDK_FN_CREATE_COMPLETION)函数的指针。

[in, optional] RequestContext

NDK 提供程序传回 NdkCreateCompletion 函数的上下文值,该函数是在 createCompletion 参数中指定的

ppNdkSharedEndpoint

如果请求成功而不返回STATUS_PENDING,则会在此位置返回指向已创建的共享终结点对象的指针(NDK_SHARED_ENDPOINT)。 如果请求返回STATUS_PENDING,则忽略此参数,并使用 CreateCompletion 参数中指定的回调返回创建的对象。

返回值

NdkCreateSharedEndpoint 函数返回以下 NTSTATUS 代码之一。

返回代码 描述
STATUS_SUCCESS
共享终结点对象已成功创建,并使用 *ppNdkSharedEndpoint 参数返回。
STATUS_PENDING
该作处于挂起状态,稍后将完成。 提供程序将调用 CreateCompletion 参数(NDK_FN_CREATE_COMPLETION)中指定的函数来完成挂起的作。
STATUS_INSUFFICIENT_RESOURCES
请求由于资源不足而失败。
重要 请求可以内联失败,以及使用此状态代码异步失败。
 
STATUS_SHARING_VIOLATION
请求失败,因为指定的本地地址已在使用中。
重要 请求可以内联失败,以及使用此状态代码异步失败。
 
STATUS_TOO_MANY_ADDRESSES
请求失败,因为使用者指定了本地端口号为零,并且网络直通提供程序无法从临时端口空间(端口 49152-65535)分配端口。
STATUS_INVALID_ADDRESS
请求失败,因为指定的本地地址不是适配器的有效地址。
重要 请求可以内联失败,以及使用此状态代码异步失败。
 
其他状态代码
发生错误。

言论

NdkCreateSharedEndpoint 函数创建一个 NDK 共享终结点,用作多个发往不同远程地址的传出连接的本地地址。 这类似于与侦听器对象所表示的同一本地地址建立多个传入连接。

如果函数返回STATUS_SUCCESS,则会在 ppNdkSharedEndpoint 参数中返回创建的对象。 如果 NdkCreateSharedEndpoint 返回STATUS_PENDING,则创建的对象由 CreateCompletion 参数中指定的 NdkCreateCompletionNDK_FN_CREATE_COMPLETION) 函数返回。

要求

要求 价值
最低支持的客户端 NDIS 6.30 及更高版本不支持。
支持的最低服务器 Windows Server 2012
目标平台 窗户
标头 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

NDKPI 对象生存期要求

NDK_ADAPTER

NDK_ADAPTER_DISPATCH

NDK_FN_CREATE_COMPLETION

NDK_SHARED_ENDPOINT