NdisCoCreateVc-Funktion (ndis.h)

NdisCoCreateVc richtet einen Verbindungsendpunkt ein, über den ein Client ausgehende Anrufe tätigen kann oder über den ein eigenständiger Anrufmanager eingehende Anrufe senden kann.

Syntax

NDIS_STATUS NdisCoCreateVc(
  [in]           NDIS_HANDLE  NdisBindingHandle,
  [in, optional] NDIS_HANDLE  NdisAfHandle,
  [in]           NDIS_HANDLE  ProtocolVcContext,
  [in, out]      PNDIS_HANDLE NdisVcHandle
);

Parameter

[in] NdisBindingHandle

Gibt das von NdisOpenAdapterEx zurückgegebene Handle an, das die Ziel-NIC oder den virtuellen Adapter des nächstniedrigen Treibers identifiziert, an den der Aufrufer gebunden ist.

[in, optional] NdisAfHandle

Gibt das von NdisClOpenAddressFamilyEx zurückgegebene Handle an, wenn der Aufrufer ein Client ist. Ein Aufruf-Manager legt diesen Parameter auf NULL fest, wenn er eine VC für sich selbst erstellt, z. B. eine VC zu einem Netzwerkswitch. Wenn er eine VC für eingehende Anrufbenachrichtigungen erstellt, übergibt ein Anruf-Manager das AF-Handle, das er in seinem per AF-Zustand gespeichert hat, der vom CallMgrAfContext als Eingabeparameter übergeben wurde, an seine ProtocolCmRegisterSap-Funktion .

[in] ProtocolVcContext

Gibt das Handle für einen vom Aufrufer bereitgestellten residenten Kontextbereich an, in dem der Aufrufer den Zustand für diese VC verwaltet. NDIS übergibt dieses Handle in allen nachfolgenden Aufrufen zu diesem Endpunkt zurück an den VC-Ersteller, wenn der Aufruf von NdisCoCreateVc erfolgreich ist.

[in, out] NdisVcHandle

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die mit NULL initialisiert werden muss, wenn NdisCoCreateVc aufgerufen wird. Bei der Rückkehr von einem erfolgreichen Aufruf verweist dies auf eine Variable, die NDIS auf ihr Handle für die neu erstellte VC festgelegt hat. Der Aufrufer muss dieses Handle für nachfolgende Aufrufe verbindungsorientierter Ndis Xxx-Funktionen speichern.

Rückgabewert

NdisCoCreateVc kann eine der folgenden Elemente zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
NDIS hat die VC erfolgreich erstellt.
NDIS_STATUS_RESOURCES
NDIS konnte nicht genügend Arbeitsspeicher für die Einrichtung der VC zuweisen.
NDIS_STATUS_FAILURE
Das angegebene NdisAfHandle ist ungültig.
NDIS_STATUS_ XXX
Beim zugrunde liegenden Miniporttreiber ist die Erstellung der VC aus einem vom Miniporttreiber bestimmten Grund fehlgeschlagen, den NDIS an den Aufrufer weitergegeben hat.

Hinweise

Ein Client oder eigenständiger Anrufmanager erstellt eine VC mit NdisCoCreateVc, je nachdem, ob die VC einen ausgehenden oder eingehenden Anruf darstellt.

Während der VC-Erstellung stellt NDIS eine NdisVcHandle an den Client, den Anruf-Manager und den Miniporttreiber bereit, an den beide Protokolltreiber gebunden sind. Mit diesem Handle wird die virtuelle Verbindung für den Client, den Anruf-Manager und den Miniporttreiber identifiziert, an die nachfolgende Anforderungen bezüglich der angegebenen VC gerichtet werden. Jeder Treiber muss dieses VC-Handle als undurchsichtige Variable behandeln und in nachfolgenden Aufrufen bestimmter verbindungsorientierter NDIS-Bibliotheksfunktionen unverändert und nicht interpretiert übergeben.

In der Regel speichern Aufrufer von NdisCoCreateVc das zurückgegebene NdisVcHandle im vom Aufrufer zugewiesenen Zustandsbereich unter ProtocolVcContext . NDIS übergibt dieses Handle als Eingabeparameter an die Funktionen ProtocolCoCreateVc und MiniportCoCreateVc der beiden anderen Treiber, die an jeder Erstellung einer VC beteiligt sind.

Um einen ausgehenden Anruf zu tätigen, muss ein Client zuerst NdisCoCreateVc aufrufen. Als synchroner Vorgang ruft NDIS die MiniportCoCreateVc-Funktion des zugrunde liegenden Miniporttreibers und die ProtocolCoCreateVc-Funktion des Aufruf-Managers auf, bevor NdisCoCreateVc die Steuerung zurückgibt. Wenn der Aufruf von NdisCoCreateVc erfolgreich ist, kann der Client mit einem ausgehenden Anruf fortfahren und das zurückgegebene NdisVcHandle an NdisClMakeCall übergeben.

Wann Die ProtocolCoReceiveNetBufferLists-Funktion verarbeitet das Angebot eines eingehenden Aufrufs, der an eine der registrierten SAPs weitergeleitet wird. Ein Anruf-Manager muss zuerst NdisCoCreateVc aufrufen. Als synchroner Vorgang ruft NDIS die MiniportCoCreateVc-Funktion des zugrunde liegenden Miniporttreibers und die ProtocolCoCreateVc-Funktion des Clients auf, bevor NdisCoCreateVc die Steuerung zurückgibt. Wenn der Aufruf von NdisCoCreateVc erfolgreich ist, kann der Anruf-Manager den entsprechenden Client benachrichtigen und den zurückgegebenen Wert an NdisVcHandle übergeben. NdisCmDispatchIncomingCall.

Eigenständige Anrufmanager, die sich bei NDIS als Protokolltreiber registrieren, können NdisCoCreateVc aufrufen. Verbindungsorientierte Miniporttreiber, die integrierte Anrufverwaltung unterstützen, rufen stattdessen NdisMCmCreateVc an.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisCoCreateVc (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisCoCreateVc (NDIS 5.1)) in Windows XP.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Connection_Function(ndis)

Weitere Informationen

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists