/********************************************************************/ /** Copyright(c) 1991 Microsoft Corporation. **/ /********************************************************************/ //*** // // Filename: dimsvc.idl // // Description: Contains the RDimAdmir (DIM Remote) RPC interface // specification for the API associated with the DIM Service. // Also contains the RPC specific data structures for // these APIs. // // History: June 11,1995. NarenG Created original version. // // // Interface Attributes // [ uuid(8f09f000-b7ed-11ce-bbd2-00001a181cad), version(0.0), pointer_default(unique) ] interface dimsvc { import "import.idl"; typedef handle_t DIM_HANDLE; // // Generic information container // typedef struct _DIM_INFORMATION_CONTAINER { DWORD dwBufferSize; [size_is(dwBufferSize)] LPBYTE pBuffer; } DIM_INFORMATION_CONTAINER, *PDIM_INFORMATION_CONTAINER; DWORD RMprAdminServerGetInfo ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [out] PDIM_INFORMATION_CONTAINER pInfoStruct ); // // Connection management APIs // DWORD RRasAdminConnectionEnum ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD dwPreferedMaximumLength, [out] LPDWORD lpdwEntriesRead, [out] LPDWORD lpdwTotalEntries, [in,out,unique] LPDWORD lpdwResumeHandle ); DWORD RRasAdminConnectionGetInfo ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] DWORD hDimConnection, [out] PDIM_INFORMATION_CONTAINER pInfoStruct ); DWORD RRasAdminConnectionClearStats ( [in] DIM_HANDLE hDimServer, [in] DWORD hDimConnection ); // // Port management APIs // DWORD RRasAdminPortEnum ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] DWORD hRasConnection, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD dwPreferedMaximumLength, [out] LPDWORD lpdwEntriesRead, [out] LPDWORD lpdwTotalEntries, [in,out,unique] LPDWORD lpdwResumeHandle ); DWORD RRasAdminPortGetInfo ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] DWORD hPort, [out] PDIM_INFORMATION_CONTAINER pInfoStruct ); DWORD RRasAdminPortClearStats ( [in] DIM_HANDLE hDimServer, [in] DWORD hPort ); DWORD RRasAdminPortReset ( [in] DIM_HANDLE hDimServer, [in] DWORD hPort ); DWORD RRasAdminPortDisconnect ( [in] DIM_HANDLE hDimServer, [in] DWORD hPort ); // // Interface management APIs // typedef struct _DIM_INTERFACE_CONTAINER { DWORD fGetInterfaceInfo; DWORD dwInterfaceInfoSize; [size_is(dwInterfaceInfoSize)] LPBYTE pInterfaceInfo; DWORD fGetGlobalInfo; DWORD dwGlobalInfoSize; [size_is(dwGlobalInfoSize)] LPBYTE pGlobalInfo; } DIM_INTERFACE_CONTAINER, *PDIM_INTERFACE_CONTAINER; DWORD RRouterInterfaceTransportSetGlobalInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwTransportId, [in] PDIM_INTERFACE_CONTAINER pInfoStruct ); DWORD RRouterInterfaceTransportGetGlobalInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwTransportId, [in,out] PDIM_INTERFACE_CONTAINER pInfoStruct ); DWORD RRouterInterfaceGetHandle( [in] DIM_HANDLE hDimServer, [in,string] LPWSTR lpwsInterfaceName, [in,out] LPDWORD phInterface, [in] DWORD fIncludeClientInterfaces ); DWORD RRouterInterfaceCreate( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] PDIM_INFORMATION_CONTAINER pInfoStruct, [in,out] LPDWORD phInterface ); DWORD RRouterInterfaceGetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD hInterface ); DWORD RRouterInterfaceSetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD hInterface ); DWORD RRouterInterfaceDelete( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface ); DWORD RRouterInterfaceTransportRemove( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId ); DWORD RRouterInterfaceTransportAdd( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId, [in] PDIM_INTERFACE_CONTAINER pInfoStruct ); DWORD RRouterInterfaceTransportGetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId, [in,out] PDIM_INTERFACE_CONTAINER pInfoStruct ); DWORD RRouterInterfaceTransportSetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId, [in] PDIM_INTERFACE_CONTAINER pInfoStruct ); DWORD RRouterInterfaceEnum ( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD dwPreferedMaximumLength, [out] LPDWORD lpdwEntriesRead, [out] LPDWORD lpdwTotalEntries, [in,out,unique] LPDWORD lpdwResumeHandle ); DWORD RRouterInterfaceConnect( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] ULONG_PTR hEvent, [in] DWORD fBlocking, [in] DWORD dwCallersProcessId ); DWORD RRouterInterfaceDisconnect( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface ); DWORD RRouterInterfaceUpdateRoutes( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId, [in] ULONG_PTR hEvent, [in] DWORD dwClientProcessId ); DWORD RRouterInterfaceQueryUpdateResult( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface, [in] DWORD dwTransportId, [out] LPDWORD pUpdateResult ); DWORD RRouterInterfaceUpdatePhonebookInfo( [in] DIM_HANDLE hDimServer, [in] DWORD hInterface ); // // MIB APIs // typedef struct _DIM_MIB_ENTRY_CONTAINER { DWORD dwMibInEntrySize; [size_is(dwMibInEntrySize)] LPBYTE pMibInEntry; DWORD dwMibOutEntrySize; [size_is(dwMibOutEntrySize)] LPBYTE pMibOutEntry; } DIM_MIB_ENTRY_CONTAINER, *PDIM_MIB_ENTRY_CONTAINER; DWORD RMIBEntryCreate( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBEntryDelete( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBEntrySet( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBEntryGet( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBEntryGetFirst( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBEntryGetNext( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBGetTrapInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RMIBSetTrapInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwPid, [in] DWORD dwRoutingPid, [in] ULONG_PTR hEvent, [in] DWORD dwCurrentProcessId, [in,out] PDIM_MIB_ENTRY_CONTAINER pInfoStuct ); DWORD RRasAdminConnectionNotification( [in] DIM_HANDLE hDimServer, [in] DWORD fRegister, [in] DWORD dwClientProcessId, [in] ULONG_PTR hEventNotification ); DWORD RRasAdminSendUserMessage( [in] DIM_HANDLE hDimServer, [in] DWORD hDimConnection, [in,string] LPWSTR lpwszMessage ); DWORD RRouterDeviceEnum( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in,out] LPDWORD lpdwTotalEntries ); DWORD RRouterInterfaceTransportCreate( [in] DIM_HANDLE hDimServer, [in] DWORD dwTransportId, [in,string] LPWSTR lpwsTransportName, [in] PDIM_INTERFACE_CONTAINER pInfoStruct, [in,string] LPWSTR lpwsDLLPath ); DWORD RRouterInterfaceDeviceGetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD dwIndex, [in] DWORD hInterface ); DWORD RRouterInterfaceDeviceSetInfo( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD dwIndex, [in] DWORD hInterface ); DWORD RRouterInterfaceSetCredentialsEx( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD hInterface ); DWORD RRouterInterfaceGetCredentialsEx( [in] DIM_HANDLE hDimServer, [in] DWORD dwLevel, [in,out] PDIM_INFORMATION_CONTAINER pInfoStruct, [in] DWORD hInterface ); }