Here are important data structure objects with brief descriptions:

  • VixError – Error code of type uint64.
  • VixDiskLibConnectParams – Public types designate the virtual machine credentials vmxSpec (possibly through vCenter Server), the name of its host, and the credential type for authentication. For details, see VMX Specification. The credType can be VIXDISKLIB_CRED_UID (user name / password, most common), VIXDISKLIB_CRED_SESSIONID (the HTTP session ID), VIXDISKLIB_CRED_TICKETID (vSphere ticket ID), or VIXDISKLIB_CRED_SSPI (Windows only, current thread credentials).

    typedef char * vmxSpec
    typedef char * serverName
    typedef VixDiskLibCredType credType
  • VDDK 6.7 has a new union in the VixDiskLibConnectParams structure; see xx.
  • VixDiskLibConnectParams::VixDiskLibCreds – Credentials for either user ID or session ID.

    VixDiskLibConnectParams::VixDiskLibCreds::VixDiskLibUidPasswdCreds – String data fields represent user name and password for authentication.

    VixDiskLibConnectParams::VixDiskLibCreds::VixDiskLibSessionIdCreds – String data fields represent the session cookie, user name, and encrypted session key.

    VixDiskLibConnectParams::VixDiskLibCredsb::VixDiskLibSSPICreds – String data fields for security support provider interface (SSPI) authentication. User name and password are null.

  • VixDiskLibCreateParams – Types represent the virtual disk (see Virtual Disk Types), the disk adapter (see Adapter Types), VMware version, and capacity of the disk sector.
    typedef VixDiskLibDiskType diskType
    typedef VixDiskLibAdapterType adapterType
    typedef uint hwVersion
    typedef VixDiskLibSectorType capacity
  • VixDiskLibDiskInfo – Types represent the geometry in the BIOS and physical disk, the capacity of the disk sector, the disk adapter (see Adapter Types), the number of child-disk links (redo logs), and a string to help locate the parent disk (state before redo logs).
    VixDiskLibGeometry biosGeo
    VixDiskLibGeometry physGeo
    VixDiskLibSectorType capacity
    VixDiskLibAdapterType adapterType
    int numLinks
    char * parentFileNameHint
  • VixDiskLibGeometry – Types specify virtual disk geometry, not necessarily the same as physical disk geometry.
    typedef uint32 cylinders
    typedef uint32 heads
    typedef uint32 sectors

As of vSphere 8.0 U2, upon failure VixDiskLib_Open() returns the underlying network error, rather than generic error 13 "cannot open file" or similar message. Now applications can better handle conditions such as VIX_E_HOST_SERVER_SHUTDOWN for machine powered off or VIX_E_HOST_NETWORK_CONN_REFUSED for network dysfunction.