RPC有一个 RpcServerInqCallAttributes函数 RPC服务器可以在客户端调用期间使用它来获取客户端的安全上下文属性和其他信息。
你必须通过 RPC_CALL_ATTRIBUTES_V2 仅适用于Windows Vista和更高版本的Windows版本(或Windows 8及更高版本的RPC_CALL_ATTRIBUTES_V3),如下所示:
// the code depends on the minimal platform you compile for RPC_CALL_ATTRIBUTES atts = { 0 }; // should map to RPC_CALL_ATTRIBUTES_V2 or RPC_CALL_ATTRIBUTES_V3 atts.Version = RPC_CALL_ATTRIBUTES_VERSION; // should be 2 or 3 atts.Flags = RPC_QUERY_CLIENT_PID; RpcServerInqCallAttributes(0, &atts); ... pid is in atts.ClientPID ...
这只能从RPC服务器本身调用,因此您必须以某种方式记录所有客户端pid并向服务器添加一些API以便能够列出它们。