# Name

VixVM_GetSharedFolderState

# Description

    VixHandle
    VixVM_GetSharedFolderState(VixHandle vmHandle,
                               int index,
                               VixEventProc *callbackProc,
                               void *clientData);

This function returns the state of a shared folder mounted in the virtual machine.

# Parameters

vmHandle
  Identifies a virtual machine. Call VixVM_Open() to create a virtual machine handle.
index
  Identifies the shared folder.
callbackProc
  A callback function that will be invoked when the operation is complete.
clientData
  A parameter that will be passed to the callbackProc function.

# Return Value

VixHandle. A job handle that describes the state of this asynchronous operation.

# Remarks

- Shared folders are indexed from 0 to n-1, where n is the number of shared folders. Use the function VixVM_GetNumSharedFolders() to get the value of n.
- When the job is signaled, the following properties will be available on the returned job handle:
  - VIX_PROPERTY_JOB_RESULT_ITEM_NAME the name of the folder
  - VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_HOST the host path its mounted from
  - VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_FLAGS flags describing the folder options VIX_SHAREDFOLDER_WRITE_ACCESS
- It is not necessary to call VixVM_LoginInGuest() before calling this function.
- Shared folders are not supported for the following guest operating systems: Windows ME, Windows 98, Windows 95, Windows 3.x, and DOS.
- In this release, this function requires the virtual machine to be powered on with VMware Tools installed.

# Side Effects

None.

# Requirements

vix.h, since VMware Workstation 6.0

# Example

    VixHandle jobHandle;
    VixError err;
    int numSharedFolders;
    char *folderName;
    char *folderHostPath;
    int folderFlags;
    int i;

    jobHandle = VixVM_GetNumSharedFolders(vmHandle, NULL, NULL);
    err = VixJob_Wait(jobHandle, VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_COUNT,
    		  &numSharedFolders, VIX_PROPERTY_NONE);
    Vix_ReleaseHandle(jobHandle);
    if (VIX_OK != err) {
       // handle error
    }

    for (i = 0; i < numSharedFolders; i++) {
       jobHandle = VixVM_GetSharedFolderState(vmHandle, i, NULL, NULL);
       err = VixJob_Wait(jobHandle,
                         VIX_PROPERTY_JOB_RESULT_ITEM_NAME, &folderName,
                         VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_HOST, &folderHostPath,
                         VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_FLAGS, &folderFlags,
    		     VIX_PROPERTY_NONE);
       if (VIX_OK != err) {
          // handle error
       }
       Vix_ReleaseHandle(jobHandle);
       printf("Folder #%d: %s:%s, flags %d\n",
                      i, folderHostPath, folderName, folderFlags);
       Vix_FreeBuffer(folderName);
       Vix_FreeBuffer(folderHostPath);
    }

Copyright (C) 2007-2018 VMware, Inc. All rights reserved.