CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO control code

Enables higher performance I/O on the cluster shared volume. Applications use this control code as a parameter to the ClusterResourceControl function, and resource DLLs receive the control code as a parameter to the ResourceControl callback function.

ClusterResourceControl( hResource,               // resource handle
                        hHostNode,               // optional node handle
                        CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO, 
                        lpInBuffer,              // input buffer: Name of shared volume
                        nInBufferSize,           // input buffer size (bytes)
                        lpOutBuffer,             // output buffer: Volume GUID path
                        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.

lpInBuffer [in, optional]

Pointer to a null-terminated Unicode string containing the name of the shared volume. The name provided can be either the cluster-assigned friendly name or the volume GUID path of the form "\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\".

cbInBufferSize [in]

The allocated size (in bytes) of the input buffer.

lpOutBuffer [out, optional]

Pointer to an output buffer to receive a null-terminated Unicode string containing the volume GUID path. The buffer must be at least 102 bytes (51 characters).

cbOutBufferSize [in]

The allocated size (in bytes) of the output buffer.

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_FUNCTION

1

The resource is not a cluster shared volume.

ERROR_INVALID_PARAMETER

87 (0x57)

The resource is not a cluster shared volume.

ERROR_MORE_DATA

234 (0xEA)

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

ERROR_RESOURCE_NOT_ONLINE

5004 (0x138C)

The resource is not online on any cluster node.

System error code

The operation failed. The value of lpcbBytesReturned is unreliable.

Remarks

The 32 bits of CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO (0x0140028a) are defined as follows.

Component Bit location Value
Object code
24 31
CLUS_OBJECT_RESOURCE (0x1)
Global bit
23
CLUS_NOT_GLOBAL (0x0)
Modify bit
22
CLUS_MODIFY (0x1)
User bit
21
CLCTL_CLUSTER_BASE (0x0)
Type bit
20
External (0x0)
Operation code
0 23
CLCTL_ENABLE_SHARED_VOLUME_DIRECTIO (0x40028a)
Access code
0 1
CLUS_ACCESS_WRITE (0x2)

For more information, see Control Code Architecture.

Requirements

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

See also

External Resource Control Codes

ClusterResourceControl

ResourceControl

CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO