S’inscrire auprès du gestionnaire de tables de routage
L’exemple de code suivant montre comment inscrire une nouvelle entité auprès du gestionnaire de tables de routage.
#include <windows.h>
#include <stdio.h>
#include "Rtmv2.h"
#include "nldef.h"
// The following #defines are from routprot.h in the Platform Software Develoment Kit (SDK)
#define PROTO_TYPE_UCAST 0
#define PROTOCOL_ID(Type, VendorId, ProtocolId) (((Type & 0x03)<<30)|((VendorId & 0x3FFF)<<16)|(ProtocolId & 0xFFFF))
#define PROTO_VENDOR_ID 0xFFFF
int __cdecl main(){
RTM_ENTITY_HANDLE RtmRegHandle;
RTM_ENTITY_INFO EntityInfo;
RTM_REGN_PROFILE RegnProfile;
DWORD dwRet = ERROR_SUCCESS;
EntityInfo.RtmInstanceId = 0;
EntityInfo.AddressFamily = AF_INET;
EntityInfo.EntityId.EntityProtocolId = PROTO_IP_RIP;
EntityInfo.EntityId.EntityInstanceId = PROTOCOL_ID(PROTO_TYPE_UCAST, PROTO_VENDOR_ID, PROTO_IP_RIP);
// Register the new entity
dwRet = RtmRegisterEntity(&EntityInfo, NULL, NULL, FALSE, &RegnProfile, &RtmRegHandle);
if (dwRet != ERROR_SUCCESS){
// Registration failed - Log an Error and Quit
}
// Clean-up: Deregister the new entity
dwRet = RtmDeregisterEntity(RtmRegHandle);
if (dwRet != ERROR_SUCCESS){
// Registration failed - Log an Error and Quit
}
return 0;
}