Share via


NDK_FN_READ Rückruffunktion (ndkpi.h)

Die Funktion NdkRead (NDK_FN_READ) sendet eine Leseanforderung für ein NDK-Warteschlangenpaar (QP).

Syntax

NDK_FN_READ NdkFnRead;

NTSTATUS NdkFnRead(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           UINT64 RemoteAddress,
  [in]           UINT32 RemoteToken,
  [in]           ULONG Flags
)
{...}

Parameter

[in] pNdkQp

Ein Zeiger auf ein QP-Objekt (NDK-Warteschlangenpaar) (NDK_QP).

[in, optional] RequestContext

Ein Kontextwert, der im RequestContext-Member der NDK_RESULT-Struktur für diese Anforderung zurückgegeben werden soll.

pSgl

Ein Array von SGE-Strukturen (NDK_SGE), die die Puffer darstellen, in denen eingehende Daten platziert werden sollen.

[in] nSge

Die Anzahl der SGE-Strukturen im Array, die im pSgl-Parameter angegeben ist.

[in] RemoteAddress

Eine Remoteadresse zum Lesen, die in der Bytereihenfolge des lokalen Hosts angezeigt wird. Der NDK-Consumer kann dem remote bereitgestellten Wert einen Offset hinzufügen.

[in] RemoteToken

Ein remote bereitgestelltes Speichertoken, das ein undurchsichtiges Array von Bytes vom NDK-Consumer ist.

[in] Flags

Ein bitweiser OR von Flags, der die zulässigen Vorgänge angibt. Die folgenden Flags werden unterstützt:

Wert Bedeutung
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Gibt an, dass der erfolgreiche Abschluss dieser Anforderung kein Vervollständigungsereignis in der Warteschlange für ausgehende Vervollständigung generiert. Bei Anforderungen, die fehlschlagen, wird jedoch ein Ereignis in der Vervollständigungswarteschlange generiert.
NDK_OP_FLAG_READ_FENCE
0x00000002
Gibt an, dass alle vorherigen Leseanforderungen abgeschlossen sein müssen, bevor die Hardware mit der Verarbeitung dieser Anforderung beginnt.
NDK_OP_FLAG_RDMA_READ_LOCAL_INVALIDATE
0x00000200
Wenn dieses Flag festgelegt ist und der Anbieter auch NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED Adapterfunktion in der NDK_ADAPTER_INFO-Struktur meldet, bedeutet der erfolgreiche Abschluss der NdkRead-Funktion , dass der erste puffer, der im pSgl-Parameter angegeben ist, ungültig ist. Der nicht erfolgreiche Abschluss belässt den Puffer und das Token in einem nicht definierten Zustand. Dieses Flag wird ignoriert, wenn der Anbieter NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED Adapterfunktion nicht in der NDK_ADAPTER_INFO-Struktur meldet.

Hinweis Dieses Flag wird nur in NDKPI 1.2 (Windows Server 2012 R2) und höher unterstützt.

NDK_OP_FLAG_DEFER
0x00000200
Gibt dem NDK-Anbieter an, dass er möglicherweise die Anforderung an die Hardware für die Verarbeitung zurückstellen kann. Weitere Informationen zu diesem Flag finden Sie unter NDKPI-Schema für verzögerte Verarbeitung.

Hinweis Dieses Flag wird nur in NDKPI 1.2 (Windows Server 2012 R2) und höher unterstützt.

Rückgabewert

Die NdkRead-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Anforderung wurde erfolgreich gesendet. Ein Vervollständigungseintrag wird in die CQ-Warteschlange eingereiht, wenn die Arbeitsanforderung abgeschlossen ist.
STATUS_CONNECTION_INVALID
Der QP ist nicht verbunden.
STATUS_REMOTE_RESOURCES
Die Anforderung hat versucht, über die Größe des Remotespeichers hinaus zu lesen.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

NdkRead postet eine Leseanforderung für ein Warteschlangenpaar (QP).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Keine unterstützt, wird in NDIS 6.30 und höher unterstützt.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

NDKPI-Schema für verzögerte Verarbeitung

Anforderungen an die NDKPI-Veröffentlichung von Arbeitsanforderungen

NDK_ADAPTER_INFO

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE