Skip to content

Latest commit

 

History

History
222 lines (166 loc) · 6.99 KB

nc-ndkpi-ndk_fn_send.md

File metadata and controls

222 lines (166 loc) · 6.99 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NC:ndkpi.NDK_FN_SEND
NDK_FN_SEND (ndkpi.h)
The NdkSend (NDK_FN_SEND) function posts a send request on an NDK queue pair (QP).
netvista\ndk_fn_send.htm
netvista
05/02/2018
NDK_FN_SEND callback function
NDK_FN_SEND, NDK_FN_SEND callback, NDK_OP_FLAG_DEFER, NDK_OP_FLAG_INLINE, NDK_OP_FLAG_READ_FENCE, NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, NDK_OP_FLAG_SILENT_SUCCESS, NdkSend, NdkSend callback function [Network Drivers Starting with Windows Vista], ndkpi/NdkSend, netvista.ndk_fn_send
ndkpi.h
Ndkpi.h
Windows
None supported,Supported in NDIS 6.30 and later.
Windows Server 2012
<=DISPATCH_LEVEL
Windows
NDK_FN_SEND
ndkpi/NDK_FN_SEND
APIRef
kbSyntax
UserDefined
ndkpi.h
NDK_FN_SEND

NDK_FN_SEND callback function

-description

The NdkSend (NDK_FN_SEND) function posts a send request on an NDK queue pair (QP).

-parameters

-param pNdkQp [in]

A pointer to an NDK queue pair (QP) object (NDK_QP).

-param RequestContext [in, optional]

A context value to be returned in the RequestContext member of the NDK_RESULT structure for this request.

-param pSgl

An array of SGE structures (NDK_SGE) that represent the buffers holding the data to send.

-param nSge [in]

The number of SGE structures in the array that is specified in the pSgl parameter.

-param Flags [in]

A bitwise OR of flags which specifies the operations that are allowed. The following flags are supported:

Value Meaning
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Indicates the successful completion of this request does not generate a completion event in the outbound completion queue. However, requests that fail do generate an event in the completion queue.
NDK_OP_FLAG_READ_FENCE
0x00000002
Indicates that all prior read requests must be complete before the hardware begins processing this request.
NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT
0x00000004
Indicates that the completion queue for the peer generates a notification. For more information about NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, see the Remarks section.
NDK_OP_FLAG_INLINE
0x00000040
Indicates that the memory referenced by the SGEs should be transferred inline. Also, the MemoryRegionToken value in the NDK_SGE entries might be invalid. Inline requests do not need to limit the number of entries in the SGE list to the MaxInitiatorRequestSge value that is specified when the queue pair was created. The amount of memory transferred inline must be within the inline data limits of the queue pair.
NDK_OP_FLAG_DEFER
0x00000200
Indicates to the NDK provider that it may defer indicating the request to hardware for processing. For more information about this flag, see NDKPI Deferred Processing Scheme.

Note  This flag is supported only in NDKPI 1.2 (Windows Server 2012 R2) and later.

-returns

The NdkSend function returns one of the following NTSTATUS codes.

Return code Description
STATUS_SUCCESS
The send request was posted successfully. A completion entry will be queued to the completion queue (CQ) when the work request is completed.
STATUS_CONNECTION_INVALID
The queue pair (QP) is not connected.
Other status codes
An error occurred.

-remarks

NdkSend posts a send request on a queue pair (QP).

You can use the NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT flag if you issue multiple, related send requests. Set this flag on the last request in the group of related send requests.

An NDK consumer can use this flag when issuing multiple, related send requests. The NDK consumer sets this flag only on the last, related send request. The peer will receive all the send requests as normal. However, when the peer receives the last send request (the request with the NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT flag set), the completion queue for the peer generates a notification. The notification is generated after the receive request completes. This flag has no meaning to the receiver (peer) unless the receiver has previously called the NdkArmCq (NDK_FN_ARM_CQ) function with the notification type set to NDK_CQ_NOTIFY_SOLICITED.

Note  Requests that complete with an error always match the NDK_CQ_NOTIFY_SOLICITED notification type.
 

-see-also

NDKPI Deferred Processing Scheme

NDKPI Work Request Posting Requirements

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE