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.

ComponentBit locationValue

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

 

 

Show: