NDK_FN_BIND Rückruffunktion (ndkpi.h)

Die Funktion NdkBind (NDK_FN_BIND) bindet ein Speicherfenster an einen bestimmten Teilbereich eines Arbeitsspeicherbereichs (MR).

Syntax

NDK_FN_BIND NdkFnBind;

NTSTATUS NdkFnBind(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
  [in]           NDK_MR *pMr,
  [in]           NDK_MW *pMw,
  [in]           PVOID VirtualAddress,
  [in]           SIZE_T Length,
  [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.

[in] pMr

Ein Zeiger auf ein MR-Objekt (NDK Memory Region) (NDK_MR).

[in] pMw

Ein Zeiger auf ein NDK-Speicherfensterobjekt (MW) (NDK_MW).

[in] VirtualAddress

Eine virtuelle Adresse, die größer oder gleich der virtuellen Adresse der MDL für den MR und kleiner als die virtuelle Adresse der MDL für den MR und dem Wert im Parameter Length sein muss.

Verwenden Sie das Makro MmGetMdlVirtualAddress , um die virtuelle Adresse der MDL für den MR abzurufen.

[in] Length

Die Länge der MR, die an die MW gebunden werden soll.

[in] Flags

Ein bitweises OR mit Flags, das 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 Abschlussereignis in der ausgehenden Vervollständigungswarteschlange generiert. Bei Anforderungen, die fehlschlagen, wird jedoch eine Vervollständigung 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_ALLOW_REMOTE_READ
0x00000008
Aktivieren Sie den Lesezugriff auf das Speicherfenster für alle verbundenen Peers. Für den Zugriff auf das Speicherfenster müssen die verbundenen Peers über ein gültiges Token verfügen.
NDK_OP_FLAG_ALLOW_REMOTE_WRITE
0x00000030
Aktivieren Sie den Schreibzugriff auf das Speicherfenster für jeden verbundenen Peer. Für den Zugriff auf das Speicherfenster müssen die verbundenen Peers über ein gültiges Token verfügen.
NDK_OP_FLAG_DEFER
0x00000200
Gibt dem NDK-Anbieter an, dass er die Anforderung an Hardware zur 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 NdkBind-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Anforderung wurde erfolgreich gesendet. Wenn die Arbeitsanforderung abgeschlossen ist, wird ein Vervollständigungseintrag in die CQ-Warteschlange eingereiht.
STATUS_CONNECTION_INVALID
Das Warteschlangenpaar (QP) ist nicht verbunden.
STATUS_ACCESS_VIOLATION
Der Speicherbereich lässt nicht den Typ des Zugriffs zu, der für das Speicherfenster angefordert wird. Das NDK_OP_FLAG_ALLOW_WRITE-Flag erfordert einen Speicherbereich, der mit dem NDK_MR_FLAG_ALLOW_LOCAL_WRITE-Flag registriert wurde.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

NdkBind bindet ein Speicherfenster (Memory Window, MW) an einen bestimmten Teilbereich eines Arbeitsspeicherbereichs (MR).

Die Adresse im VirtualAddress-Parameter muss eine Adresse innerhalb des nahezu zusammenhängenden Bereichs sein, der von der MDL-Kette beschrieben wird, die bei der Speicherregistrierung angegeben wurde. Die Adresse muss vom Anbieter als Index in den Speicherbereich behandelt werden. Die Adresse darf vom Anbieter nicht als gültige virtuelle Adresse zum Lesen oder Schreiben von Pufferinhalten verwendet werden.

Nachdem dieser Aufruf zurückgegeben wurde, ist das Remotetoken mit der Funktion NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW) verfügbar.

Diese Funktion unterstützt keine nullbasierte virtuelle Adresse.

Anforderungen

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

Weitere Informationen

MmGetMdlVirtualAddress

NDKPI-Schema für verzögerte Verarbeitung

Anforderungen für die NDKPI-Veröffentlichung von Arbeitsanforderungen

NDK_FN_GET_REMOTE_TOKEN_FROM_MW

NDK_MR

NDK_MW

NDK_QP

NDK_RESULT