|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
rpcep.cpp
Abstract:
dump all registered interfaces on the local RPC endpoint mapper
Author:
Charlie Wickham (charlwi) 10-Feb-2000
Revision History:
--*/
#include <stdio.h>
#include <errno.h>
#include <rpc.h>
CHAR blanks[] = " ";
int __cdecl main( int argc, char *argv[]) { RPC_STATUS status; RPC_EP_INQ_HANDLE inquiryContext; DWORD numBlanks;
status = RpcMgmtEpEltInqBegin(NULL, RPC_C_EP_ALL_ELTS, (RPC_IF_ID *)NULL, 0, NULL, &inquiryContext);
if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqBegin() failed with %d\n", status); return status; }
do { RPC_IF_ID ifId; RPC_BINDING_HANDLE bindingHandle; unsigned char * annotation; unsigned char * localBinding;
status = RpcMgmtEpEltInqNext(inquiryContext, &ifId, &bindingHandle, NULL, &annotation);
if ( status == RPC_X_NO_MORE_ENTRIES ) { break; } else if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqNext() failed with %d\n", status); break; }
status = RpcBindingToStringBinding( bindingHandle, &localBinding ); printf("%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", ifId.Uuid.Data1, ifId.Uuid.Data2, ifId.Uuid.Data3, ifId.Uuid.Data4[0], ifId.Uuid.Data4[1], ifId.Uuid.Data4[2], ifId.Uuid.Data4[3], ifId.Uuid.Data4[4], ifId.Uuid.Data4[5], ifId.Uuid.Data4[6], ifId.Uuid.Data4[7] );
numBlanks = sizeof(blanks) - ( strlen( (const char *)localBinding ) + 2 ); printf(" [%s]%*.s\"%s\"\n", localBinding, numBlanks, blanks, annotation );
RpcBindingFree( &bindingHandle ); RpcStringFree( &localBinding );
} while ( TRUE );
status = RpcMgmtEpEltInqDone( &inquiryContext ); if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqDone() failed with %d\n", status); }
return 0; }
/* end rpcep.cpp */
|