NDKPI Terminology

The NDKPI documentation uses the following terms to describe NDK providers and consumers.

provider function

An NDKPI function in the function dispatch table of an NDK object. Provider functions are implemented by NDK providers and called by NDK consumers. All provider functions have as the first parameter a pointer to the object on which they operate. This pointer is similar to the "this" pointer in C++. This pointer is always passed explicitly by the consumer to the provider function.

consumer callback

An NDKPI function implemented by NDK consumers and called by NDK providers. There are 2 types of consumer callbacks: completion callbacks and event callbacks.

completion callback

A consumer callback that is called by the NDK provider to signal the completion of an asynchronous provider function. In NDKPI 1.1 and 1.2, there are 3 completion callbacks:

event callback

A consumer callback that can be called by the NDK provider to indicate certain events on an NDK object asynchronously without being triggered by an asynchronous provider function. In NDKPI 1.1 and 1.2, there are 4 event callbacks:

parent object

An NDK object whose function dispatch table contains one or more NdkCreateXxx** provider functions to create other objects. in NDKPI versions 1.1 and 1.2, there are 2 parent objects:

The NDK adapter object (NDK_ADAPTER) is the parent of:

The NDK protection domain (PD) object (NDK_PD) is the parent of:

child object

An NDK object which is created by calling one of the NdkCreateXxx** provider functions in a parent object's dispatch table.

antecedent object

An NDK object that another object relies on in order to provide functionality. The antecedent object must be created before the successor object. Note that all parent objects are antecedent objects, but the reverse is not true.

successor object

An NDK object that relies on an antecedent object. The antecedent object must be created before the successor object. Note that all child objects are successor objects but the reverse is not true. Note that an antecedent/successor relationship may be required, optional, and/or deferred to a point after the successor creation in some cases.

The following antecedent/successor relationships are defined by NDKPI versions 1.1 and 1.2 (in addition to the parent/child relationships, which are antecedent/successor relationships by definition):

Antecedent Successor

NDK_CQ

NDK_QP

NDK_MR

NDK_MW (See NdkBind (NDK_FN_BIND).)

NDK_SRQ

NDK_QP

NDK_QP

NDK_CONNECTOR (See NdkConnect (NDK_FN_CONNECT), NdkAccept (NDK_FN_ACCEPT), and NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT).)

NDK_SHARED_ENDPOINT

NDK_CONNECTOR (See NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT).)

NDK_LISTENER

NDK_CONNECTOR (See NdkConnectEventCallback (NDK_FN_CONNECT_EVENT_CALLBACK).)

endpoint

An implicit or explicit representation of a local address and NetworkDirect port number that identify the local point over which connections can be initiated or accepted, for example, 10.1.1.1:445:

Note  An NDK endpoint is not the same as the NDSPI version 1 INDEndpoint interface or the NDSPI version 2 INDQueuePair interface.

Network Direct Kernel Provider Interface (NDKPI)