NdisMCmMakeCallComplete-Makro (ndis.h)
NdisMCmMakeCallComplete den endgültigen Status der Anforderung eines Clients zurück, für die der MCM-Treiber zuvor NDIS_STATUS_PENDING zurückgegeben hat, um einen ausgehenden Anruf zu tätigen.
Syntax
void NdisMCmMakeCallComplete(
_S_,
_VH_,
_PH_,
_CC_,
_CP_
);
Parameter
_S_
Gibt den endgültigen Status des Verbindungsversuchs an, entweder NDIS_STATUS_SUCCESS oder einen vom Aufrufer bestimmten NDIS_STATUS_ XXX- außer NDIS_STATUS_PENDING.
_VH_
Gibt das Handle für die vom Client erstellte VC an, die der MCM-Treiber als Eingabeparameter für seine ProtocolCoCreateVc--Funktion abgerufen hat und vor kurzem von der CallMgrVcContext- an die ProtocolCmMakeCall--Funktion übergeben wurde.
_PH_
Gibt das Handle für die erste Partei auf dem vom Client erstellten Multipoint VC an, den der MCM-Treiber als Eingabeparameter für seine ProtocolCmMakeCall--Funktion abgerufen hat. Wenn der angegebene NdisVcHandle einen Punkt-zu-Punkt-VC darstellt, war dieser Parameter NULL-.
_CC_
Gibt das Handle für einen vom Aufrufer zugewiesenen residenten Kontextbereich an, in dem der MCM-Treiber Informationen für die Statusinformationen pro Partei verwaltet, oder dieser Parameter ist NULL-, wenn NdisPartyHandle-NULL-ist. Bei einem Multipoint-VC übergibt NDIS diesen MCM-Treiber bereitgestellten CallManagerPartyContext in allen nachfolgenden Aufrufen der ProtocolCm-Xxx--Funktionen, die diese Partei betreffen. Wenn Status- nichts anderes als NDIS_STATUS_SUCCESS ist, ignoriert NDIS diesen Parameter.
_CP_
Zeiger auf eine Struktur vom Typ CO_CALL_PARAMETERS, die die für diese Verbindung eingerichteten Aufrufparameter angibt, wenn Status- NDIS_STATUS_SUCCESS ist.
Rückgabewert
Nichts
Bemerkungen
Ein MCM-Treiber sollte NdisMCmMakeCallComplete- mit NDIS_STATUS_SUCCESS nur aufrufen, wenn er bereit ist, Datenübertragungen auf dem VC durchzuführen. Das heißt, der MCM-Treiber hat mit dem Netzwerk ausgehandelt, um die Anrufparameter für die VC einzurichten, eine NIC für diese Anrufparameter einzurichten und NdisMCmActivateVc aufgerufen, um NDIS über die VC-Aktivierung zu benachrichtigen.
Ein MCM-Treiber muss NdisMCmMakeCallComplete- aufrufen, wenn seine ProtocolCmMakeCall-funktion zuvor NDIS_STATUS_PENDING für die angegebene NdisVcHandle- zurückgegeben wurde. Der Client, der den ausstehenden ausgehenden Anruf initiiert hat, kann die VC nicht verwenden, um Übertragungen durchzuführen, bis der Miniporttreiber NdisMCmMakeCallComplet e mit NDIS_STATUS_SUCCESS aufruft.
Selbst wenn die versuchte Verbindung fehlgeschlagen ist, können weder NDIS noch der Client die Ressourcen freigeben, die sie dem Zustand zugeordnet haben, bis der MCM-Treiberaufruf an NdisMCmMakeCallComplete einen Aufruf an den Client verursacht. ProtocolClMakeCallComplete--Funktion. Tatsächlich führt die Vernachlässigung des Aufrufs NdisMCmMakeCallComplete für einen fehlgeschlagenen Versuch, eine solche Verbindung einzurichten, auch einen Speicherverlust im MCM-Treiber verursacht; sie verhindert, dass der Client den vc abreißt, den er für seinen fehlgeschlagenen ausgehenden Aufruf erstellt hat, sodass die ProtocolCoDeleteVc--Funktion des MCM-Treibers nicht aufgerufen wird, um die Ressourcen freizugeben, die der Miniporttreiber für diese VC zugeordnet ist.
Wenn der MCM-Treiber einen Fehler wie NDIS_STATUS_FAILURE für den Statusübergibt, muss er die NdisPartyHandle-berücksichtigen, falls vorhanden, ungültig, wenn NdisMCmMakeCallComplete die Steuerung zurückgibt. Der CM kann alle Ressourcen freigeben (oder zur Wiederverwendung erneut initialisieren), die dem Zustand für die angegebene Partei zugewiesen wurden, nachdem NdisMCmMakeCallComplete die Steuerung zurückgibt. Die ProtocolCoDeleteVc--Funktion des MCM-Treibers wird anschließend aufgerufen, um alle Ressourcen freizugeben, die der Miniporttreiber für die Nachverfolgung des Zustands der vom Client erstellten VC zugewiesen wurde, wenn der MCM-Treiber einen Fehlerstatus an NdisMCmMakeCallCompleteübergibt.
Im Zuge der Einrichtung eines vom Client initiierten ausgehenden Anrufs kann der MCM-Treiber die clientgelieferten Aufrufparameter ändern, die ursprünglich an die ProtocolCmMakeCall--Funktion übergeben wurden. Wenn dies der Fall ist, muss der MCM-Treiber seine Änderungen im Puffer bei CallParameters übergeben, wenn er NdisMCmMakeCallCompleteaufruft. Wenn der Client diese geänderten Aufrufparameter inakzeptabel findet, wird er den Aufruf abreißen, was auch einen Aufruf der ProtocolCoDeleteVc--Funktion des MCM-Treibers verursacht.
Nur verbindungsorientierte Miniporttreiber, die integrierte Anrufverwaltungsunterstützung bieten, können NdisMCmMakeCallCompleteanrufen. Eigenständige Anrufmanager, die sich bei NDIS als Protokolltreiber registrieren, rufen sie stattdessen NdisCmMakeCallComplete auf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMCmMakeCallComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisMCmMakeCallComplete (NDIS 5.1)) in Windows XP. |
Zielplattform- | Desktop |
Header- | ndis.h (include Ndis.h) |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_MCM_Function(ndis) |