Share via


PMGM_RPF_CALLBACK funzione di callback (mgm.h)

Il callback PMGM_RPF_CALLBACK è una chiamata a un protocollo di routing per determinare se un determinato pacchetto è stato ricevuto nell'interfaccia corretta.

Questo callback viene richiamato quando viene ricevuto un pacchetto da una nuova origine o destinato a un nuovo gruppo. Gestione gruppi multicast richiama questo callback al protocollo di routing proprietario dell'interfaccia in ingresso verso l'origine.

Sintassi

PMGM_RPF_CALLBACK PmgmRpfCallback;

DWORD PmgmRpfCallback(
  [in]      DWORD dwSourceAddr,
  [in]      DWORD dwSourceMask,
  [in]      DWORD dwGroupAddr,
  [in]      DWORD dwGroupMask,
  [in, out] PDWORD pdwInIfIndex,
  [in, out] PDWORD pdwInIfNextHopAddr,
  [in, out] PDWORD pdwUpStreamNbr,
  [in]      DWORD dwHdrSize,
  [in]      PBYTE pbPacketHdr,
  [in, out] PBYTE pbRoute
)
{...}

Parametri

[in] dwSourceAddr

Specifica l'indirizzo di origine da cui sono stati ricevuti i dati multicast. Zero indica che i dati vengono ricevuti da tutte le origini (un ricevitore con caratteri jolly per un gruppo); in caso contrario, il valore di dwSourceAddr è l'indirizzo IP della rete di origine o di origine.

Per specificare un intervallo di indirizzi di origine, gestione gruppi multicast specifica la rete di origine tramite dwSourceAddr e specifica una subnet mask tramite dwSourceMask.

[in] dwSourceMask

Specifica la subnet mask che corrisponde a dwSourceAddr. I parametri dwSourceAddr e dwSourceMask vengono usati insieme per definire un intervallo di origini da cui ricevere dati multicast.

Il gestore gruppi multicast specifica zero per questo parametro se è stato specificato anche zero per dwSourceAddr (un ricevitore con caratteri jolly).

[in] dwGroupAddr

Specifica il gruppo multicast per il quale i dati sono destinati. Zero indica che tutti i gruppi vengono ricevuti (un ricevitore con caratteri jolly); in caso contrario, il valore di dwGroupAddr è l'indirizzo IP del gruppo.

Per specificare un intervallo di indirizzi di gruppo, gestione gruppi multicast specifica l'indirizzo del gruppo tramite dwGroupAddr e specifica una subnet mask tramite dwGroupMask.

[in] dwGroupMask

Specifica la subnet mask che corrisponde a dwGroupAddr. I parametri dwGroupAddr e dwGroupMask vengono usati insieme per definire un intervallo di gruppi multicast.

Gestione gruppi multicast specifica zero per questo parametro se è stato specificato anche zero per dwGroupAddr (ricevitore con caratteri jolly).

[in, out] pdwInIfIndex

In input, un puntatore a una posizione di memoria di dimensioni DWORD che specifica l'indice dell'interfaccia su cui devono essere ricevuti i dati dell'origine, in base alla vista multicast della tabella di routing.

Nell'output pdwInIfIndex punta a un percorso di memoria di dimensioni DWORD che contiene l'indice dell'interfaccia in cui il protocollo prevede di ricevere pacchetti. L'indice di interfaccia può differire dall'output dell'indice specificato nell'input.

[in, out] pdwInIfNextHopAddr

In input pdwInIfNextHopAddr specifica l'indirizzo dell'hop successivo corrispondente all'indice specificato da dwIfIndex.

I parametri dwIfIndex e dwIfNextHopIPAddr identificano in modo univoco un hop successivo sulle interfacce da punto a più punti. Un'interfaccia da punto a punto è una connessione in cui un'interfaccia si connette a più reti. Esempi di interfacce da punto a più punti includono interfacce di accesso multiplo (NBMA) non broadcast e l'interfaccia interna in cui si connettono tutti i client di connessione remota.

Per le interfacce di trasmissione (ad esempio interfacce Ethernet) o interfacce da punto a punto, identificate solo dal valore di dwIfIndex, specificano zero.

Nell'output pdwInIfNextHopAddr punta all'hop successivo corrispondente a pdwInIfIndex.

[in, out] pdwUpStreamNbr

In input pdwUpStreamNbr punta a un valore DWORD che specifica il vicino upstream immediato verso l'origine (l'origine si trova nella visualizzazione multicast della tabella di routing).

Nell'output , pdwUpStreamNbr potrebbe essere stato modificato dal protocollo. Questo parametro è solo a scopo informativo.

[in] dwHdrSize

Specifica, in byte, le dimensioni del buffer a cui punta pbPacketHdr.

[in] pbPacketHdr

Puntatore a un buffer contenente l'intestazione IP del pacchetto, incluse le opzioni IP e un frammento dei dati. Questo parametro viene usato dai protocolli che esaminano il contenuto dell'intestazione del pacchetto.

[in, out] pbRoute

In input pbRoute punta a un buffer che contiene la route verso l'origine. Il buffer contiene una struttura RTM_DEST_INFO .

Nell'output pbRoute punta a un buffer contenente la route usata dal protocollo per determinare l'interfaccia verso l'origine.

Valore restituito

RRAS non prevede che l'applicazione restituisca alcun valore specifico; qualsiasi valore restituito viene ignorato da RRAS.

Commenti

Questo callback viene richiamato quando viene creato un MFE. Le funzioni mfe vengono create quando vengono ricevuti dati da una nuova origine multicast o destinati a un nuovo gruppo.

Gestione gruppi multicast richiama questo callback al protocollo di routing proprietario dell'interfaccia in ingresso verso l'origine. Gestione gruppi multicast determina l'interfaccia cercando l'origine dei dati multicast nella visualizzazione multicast della tabella di routing. Questa interfaccia non è sempre la stessa dell'interfaccia su cui sono stati effettivamente ricevuti i dati; questa condizione si verifica se i dati multicast sono stati ricevuti nell'interfaccia errata.

Quando viene richiamato questo callback, il protocollo di routing può modificare l'interfaccia in ingresso se il comportamento del protocollo di routing richiede che riceva i dati per il gruppo da un'altra interfaccia.

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mgm.h