2.2.3.1 RPC_SECURITY_DESCRIPTOR

The RPC_SECURITY_DESCRIPTOR structure is a container for passing a security descriptor that can be marshaled and unmarshaled by RPC. In this protocol it is part of the RPC_SECURITY_ATTRIBUTES structure (section 2.2.3.2).

 typedef struct _RPC_SECURITY_DESCRIPTOR {
   [size_is(cbInSecurityDescriptor), length_is(cbOutSecurityDescriptor)] 
     unsigned char* lpSecurityDescriptor;
   unsigned long cbInSecurityDescriptor;
   unsigned long cbOutSecurityDescriptor;
 } RPC_SECURITY_DESCRIPTOR,
  *PRPC_SECURITY_DESCRIPTOR;

lpSecurityDescriptor: A variable-length buffer that contains a security descriptor in self-relative form.

cbInSecurityDescriptor: The size, in bytes, of memory that is allocated for the security descriptor. If no security descriptor is specified, this field MUST be zero.

cbOutSecurityDescriptor: The number of bytes of the lpSecurityDescriptor to be transmitted. If no security descriptor is specified, this field MUST be zero.