NdisCmMakeCallComplete-Funktion (ndis.h)
NdisCmMakeCallComplete den endgültigen Status der Anforderung eines Kunden zurück, für die der Anrufmanager zuvor NDIS_STATUS_PENDING zurückgegeben hat, um einen ausgehenden Anruf zu tätigen.
Syntax
void NdisCmMakeCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] NDIS_HANDLE CallMgrPartyContext,
[in] PCO_CALL_PARAMETERS CallParameters
);
Parameter
[in] Status
Gibt den endgültigen Status des Verbindungsversuchs an, entweder NDIS_STATUS_SUCCESS oder cm-bestimmten NDIS_STATUS_ XXX- außer NDIS_STATUS_PENDING.
[in] NdisVcHandle
Gibt das Handle für die vom Client erstellte VC an, die der Aufruf-Manager ursprünglich als Eingabeparameter für seine ProtocolCoCreateVc--Funktion abgerufen hat. Vor kurzem hat der CM dieses Handle aus dem pro VC-Zustand abgerufen, der vom CallMgrVcContext an seine ProtocolCmMakeCall--Funktion übergeben wurde.
[in, optional] NdisPartyHandle
Gibt das Handle für die erste Partei auf dem vom Client erstellten Multipoint VC an, den der Aufruf-Manager als Eingabeparameter für seine ProtocolCmMakeCall--Funktion abgerufen hat. Wenn der angegebene NdisVcHandle einen Punkt-zu-Punkt-VC darstellt, war dieser Parameter NULL-.
[in, optional] CallMgrPartyContext
Gibt das vom CM bereitgestellte Handle für einen vom Aufrufer zugewiesenen residenten Kontextbereich an, in dem der CM-Statusinformationen pro Partei verwaltet, oder NULL-, wenn NdisPartyHandle-NULL-ist. Bei einem Multipoint-VC übergibt NDIS diesen cm-bereitgestellten CallManagerPartyContext in allen nachfolgenden Aufrufen des ProtocolCm-Xxx--Funktionen, die diese Partei betreffen. Andernfalls ignoriert NDIS diesen Parameter.
[in] CallParameters
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 eigenständiger Anrufmanager sollte NdisMCmMakeCallComplete- mit NDIS_STATUS_SUCCESS nur aufrufen, wenn der zugrunde liegende Miniporttreiber bereit ist, Datenübertragungen auf dem VC durchzuführen. Das heißt, der Anrufmanager hat mit dem Netzwerk ausgehandelt, um Anrufparameter für die VC einzurichten und NdisCmActivateVc erfolgreich aufgerufen.
Ein eigenständiger Anrufmanager muss NdisCmMakeCallComplete- aufrufen, wenn die ProtocolCmMakeCall- funktion zuvor NDIS_STATUS_PENDING für die angegebene NdisVcHandle- zurückgegeben hat. Der Client, der den ausstehenden ausgehenden Anruf initiiert hat, kann die VC nicht verwenden, um Übertragungen vorzunehmen, bis die CM-Aufrufe NdisCmMakeCallComplete mit NDIS_STATUS_SUCCESS.
Auch wenn die versuchte Verbindung fehlgeschlagen ist, können weder NDIS noch der Client die Ressourcen freigeben, die sie dem Zustand zugeordnet haben, bis der CM-Aufruf an NdisCmMakeCallComplete einen Aufruf an den Client verursacht. ProtocolClMakeCallComplete--Funktion. Tatsächlich führt die Vernachlässigung des Aufrufs NdisCmMakeCallComplete für einen fehlgeschlagenen Versuch, eine solche Verbindung einzurichten, auch einen Speicherverlust im Anrufmanager verursacht; sie verhindert, dass der Client den vc abreißt, den er für seinen fehlgeschlagenen ausgehenden Aufruf erstellt hat, sodass der CM-Aufruf nicht aufgerufen wird, die ressourcen freizugeben, die er für diese VC zugewiesen hat.
Wenn der CM einen Fehler wie NDIS_STATUS_FAILURE für den Statusübergibt, sollte er die NdisPartyHandle-, falls vorhanden, ungültig sein, sobald er NdisCmMakeCallCompleteaufruft. Der CM kann alle Ressourcen freigeben (oder zur Wiederverwendung erneut initialisieren), die dem Zustand für die angegebene Partei zugewiesen wurden, wenn NdisCmMakeCallComplete Steuerelement zurückgibt. Die ProtocolCoDeleteVc--Funktion des CM wird anschließend aufgerufen, um alle Ressourcen freizugeben, die der CM zur Nachverfolgung des Zustands der vom Client erstellten VC zugewiesen wurde, wenn der CM einen Fehlerstatus an NdisCmMakeCallCompleteübergibt.
Im Zuge der Einrichtung eines vom Client initiierten ausgehenden Anrufs kann der CM die clientgelieferten Aufrufparameter ändern, die ursprünglich an die ProtocolCmMakeCall--Funktion übergeben wurden. Wenn dies der Fall ist, muss der CM seine Änderungen im Puffer bei CallParameters übergeben, wenn er NdisCmMakeCallComplete-aufruft. Wenn der Client diese geänderten Aufrufparameter inakzeptabel findet, wird er dann den Aufruf abreißen, wodurch auch ein Aufruf der ProtocolCoDeleteVc-funktion des CM- verursacht wird.
Nur eigenständige Anrufmanager, die sich bei NDIS als Protokolltreiber registrieren, können NdisCmMakeCallCompleteaufrufen. Miniporttreiber, die einen integrierten Anruf zur Unterstützung der Anrufverwaltung bereitstellen stattdessen NdisMCmMakeCallComplete.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMakeCallComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisCmMakeCallComplete (NDIS 5.1)) in Windows XP. |
Zielplattform- | Desktop |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_CallManager_Function(ndis) |