Debugging Tools for Windows |
Two different levels of RPC run-time state information can be gathered: Server information and Full information. This information gathering must be enabled before the debugger or DbgRpc can be used to analyze state information.
Only Windows XP and later versions of Windows support the gathering of RPC state information.
Gathering Server state information is very lightweight. It costs about 100 machine instructions per RPC call, resulting in no detectable load, even during performance tests. However, gathering this information does use memory (about 4KB per RPC server), so it is not recommended on a machine that is already experiencing memory pressure. Server information includes data about endpoints, threads, connection objects, and Server Call (SCALL) objects. This is sufficient to debug most RPC problems.
Gathering Full state information is more heavyweight. It includes all the information gathered at the Server level and, in addition, includes Client Call (CCALL) objects. Full state information is usually not needed.
To enable state information to be gathered on an individual machine, run the Group Policy Editor (gpedit.msc). Under the Local Computer Policy, navigate to Computer Configuration/Administrative Templates/System/Remote Procedure Call. Under this node you will see the RPC Troubleshooting State Information item. When you edit its properties, you will see five possible states:
If you want to simultanously set these levels on a set of networked computers, use the Group Policy Editor to roll out a machine policy to the preferred set of machines. The policy engine will take care that the settings you want are propagated to the preferred set of machines. The Auto1 and Auto2 levels are especially useful in this case, because the operating system and amount of RAM on each computer may vary.
If the network includes computers running versions of Windows that are earlier than Windows XP, the settings will be ignored on those machines.