CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN control code

Used by custom resources, services, and applications to get a token in the Network Name's logon session. The token can then be used for impersonation. Applications use this control code as a parameter to the ClusterResourceControl function.

ClusterResourceControl( hResource,                   // resource handle
  hHostNode,                                         // node handle
  CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN, // this control code
  lpInBuffer,                                        // input buffer: CLUS_NETNAME_VS_TOKEN_INFO
  cbInBufferSize,                                    // input buffer size (bytes)
  lpOutBuffer,                                       // output buffer: HANDLE
  cbOutBufferSize,                                   // output buffer size (bytes)
  lpcbBytesReturned );                               // resulting data size (bytes)

Parameters

The following control code function parameters are specific to this control code. For complete parameter descriptions, see ClusterResourceControl.

hHostNode [in, optional]

Handle to the local node to perform the operation. This operation will fail with ERROR_INVALID_PARAMETER if the node is remote.

lpInBuffer

Points to a CLUS_NETNAME_VS_TOKEN_INFO structure.

lpOutBuffer

On a successful return, points to a HANDLE to a duplicate of the token in the Network Name's logon session.

Return value

ClusterResourceControl returns one of the following values:

ERROR_SUCCESS

0

The operation was successful. The lpcbBytesReturned parameter points to the actual size of the returned data.

ERROR_INVALID_PARAMETER

87 (0x57)

The node referenced by the hHostNode parameter is a remote node, the cbInBufferSize parameter is too small, or the cbOutBufferSize parameter is too small.

ERROR_MORE_DATA

234 (0xEA)

The output buffer pointed to by the lpOutBuffer parameter was not large enough to hold the data resulting from the operation. The lpcbBytesReturned parameter points to the size required for the output buffer.

System error code

The operation failed. The value of the lpcbBytesReturned parameter is unreliable.

Remarks

ClusAPI.h defines the 32 bits of CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN as follows (for more information, see Control Code Architecture).

Component Bit location Value
Object code 24 31 CLUS_OBJECT_RESOURCE (0x1)
Global bit 23 CLUS_NOT_GLOBAL (0x0)
Modify bit 22 CLUS_NO_MODIFY (0x0)
User bit 21 CLCTL_CLUSTER_BASE (0x0)
Type bit 20 External (0x0)
Operation code 0 23 CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN (0x16d)
Access code 0 1 CLUS_ACCESS_READ (0x1)

Requirements

Minimum supported client
None supported
Minimum supported server
Windows Server 2008 Datacenter, Windows Server 2008 Enterprise
Header
ClusAPI.h

See also

External Resource Control Codes

ClusterResourceControl

CLUS_NETNAME_VS_TOKEN_INFO