The RPC_SECURITY_QOS structure defines security quality-of-service settings on a binding handle.
Windows NT®: 4.0 (limited functionality), 5.0 (full functionality).
Windows®: Windows 95 (clients)Import Library: RPCRT4.LIB
typedef struct _RPC_SECURITY_QOS {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
Value | Description |
---|---|
RPC_C_QOS_CAPABILITIES _DEFAULT |
Use when no provider-specific capabilities are needed. |
RPC_C_QOS_CAPABILITIES _MUTUAL_AUTH |
Not supported on Windows NT 4.0 |
Value | Description |
---|---|
RPC_C_QOS_IDENTITY_STATIC | Security context is created only once and is never revised during the entire communication, even if the client side changes it. |
RPC_C_QOS_IDENTITY_DYNAMIC | Context is revised whenever the LogonId in the client's token is changed |
ImpersonationType
The level at which the server process can impersonate the client.
Value | Description |
---|---|
RPC_C_IMP_LEVEL_ANONYMOUS | Client does not want to provide indentification information to the server. |
RPC_C_IMP_LEVEL_IDENTIFY | Server can obtain information about client security indentifiers and privileges, but cannot impersonate the client. |
RPC_C_IMP_LEVEL _IMPERSONATE |
Server can impersonate the client's security context on its local system, but not on remote systems. |
RPC_C_IMP_LEVEL_DELEGATE | Not supported on NT 4.0. See Remarks. |
The client-side security functions RpcBindingInqAuthInfoEx and RpcBindingSetAuthInfo use the RPC_SECURITY_QOS structure to inquire about, or to set, the security quality of service for a binding handle.
Note Windows NT does not support the delegation impersonation level natively, but the security package may have the ability to provide it. In the current implementation, RPC always requests delegation-level security context from the security package for unauthenticated transports. It maps the requested level to the native level for authenticated transports (named pipes and LRPC).
The NTLM security package, the default security package in Windows NT 4.0, does not currently support delegation and ignores the caller's request.
RpcBindingInqAuthInfoEx, RpcBindingSetAuthInfoEx