Funzione NdisMCmCreateVc (ndis.h)
NdisMCmCreateVc configura un endpoint di connessione in cui un driver MCM può inviare un'offerta di chiamata in ingresso a un client.
Sintassi
NDIS_STATUS NdisMCmCreateVc(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE MiniportVcContext,
[out] PNDIS_HANDLE NdisVcHandle
);
Parametri
[in] MiniportAdapterHandle
Specifica l'input originale dell'handle fornito da NDIS a MiniportInitializeEx.
[in] NdisAfHandle
Specifica l'handle che identifica il client che rappresenta la destinazione di una chiamata in ingresso. Il driver MCM ha ottenuto questo handle come parametro di input per la relativa funzione ProtocolCmOpenAf .
[in] MiniportVcContext
Specifica l'handle di un'area del contesto residente fornita dal chiamante in cui il driver MCM mantiene lo stato per questo vc. NDIS passa di nuovo questo handle al driver MCM in tutte le chiamate successive relative a questo vc se la chiamata a NdisMCmCreateVc ha esito positivo.
[out] NdisVcHandle
Puntatore a una variabile fornita dal chiamante che deve essere inizializzata su NULL prima che venga chiamato NdisMCmCreateVc . Al termine della chiamata, questa variabile è stata impostata su un handle fornito da NDIS per il vc appena creato. Il chiamante deve salvare questo handle per le chiamate successive alle funzioni NdisXxx orientate alla connessione relative a questo vc.
Valore restituito
NdisMCmCreateVc può restituire uno dei seguenti elementi:
Codice restituito | Descrizione |
---|---|
|
NDIS ha creato correttamente il vc. |
|
NDIS non è riuscito ad allocare memoria sufficiente per configurare il vc. |
|
L'oggetto NdisAfHandle specificato non è valido. |
|
Il client non è riuscito a creare vc per qualche motivo e NDIS ha propagato lo stato di errore restituito dalla relativa funzione ProtocolCoCreateVc al driver MCM. |
Commenti
Un driver MCM crea un vc con NdisMCmCreateVc per rappresentare un'offerta in ingresso di una connessione da un nodo remoto diretto a un sap già registrato con il driver MCM.
Durante il processo di creazione di VC, NDIS fornisce un NdisVcHandle al client e al driver MCM. Questo handle identifica la connessione virtuale per il driver client e miniport a cui vengono indirizzate le richieste successive relative al vc specificato. Ogni driver deve trattare questo handle vc come variabile opaca, passandolo non modificato e non interpretato nelle chiamate successive a determinate funzioni della libreria NDIS orientate alla connessione.
In genere, i chiamanti di NdisMCmCreateVc archiviano l'oggetto NdisVcHandle restituito nell'area di stato allocata dal chiamante in MiniportVcContext . NDIS passa NdisVcHandle come parametro di input alla funzione ProtocolCoCreateVc del client appropriato ogni volta che un driver MCM crea un vc.
Quando un driver MCM elabora l'offerta di una chiamata in ingresso indirizzata a uno dei provider di sicurezza registrati, deve chiamare prima NdisMCmCreateVc . Come operazione sincrona, NDIS chiama la funzione ProtocolCoCreateVc del client prima che NdisMCmCreateVc restituisca il controllo. Se la chiamata a NdisMCmCreateVc ha esito positivo, il driver MCM può continuare a notificare al client appropriato, passando il valore restituito in NdisVcHandle a NdisMCmDispatchIncomingCall.
Il writer del driver determina se un driver MCM ha una funzione MiniportCoCreateVc (interna) che il driver chiama nel contesto della configurazione delle connessioni per le chiamate in uscita e in ingresso.
Solo i driver miniport orientati alla connessione che forniscono supporto integrato per la gestione delle chiamate possono chiamare NdisMCmCreateVc. I responsabili delle chiamate autonomi e i client, che si registrano con NDIS come driver di protocollo, chiamano invece NdisCoCreateVc .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisMCmCreateVc (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisMCmCreateVc (NDIS 5.1)) in Windows XP. |
Piattaforma di destinazione | Desktop |
Intestazione | ndis.h (include Ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | Irql_MCM_Function(ndis) |