Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2026-03-23 The HDF5 Field Guide

Loading...
Searching...
No Matches
H5VLpublic.h File Reference
`#include "H5public.h"`
`#include "H5Ipublic.h"`

## Macros
#define | H5_VOL_INVALID (-1)
#define | H5_VOL_MAX 65535
#define | H5_VOL_NATIVE 0
#define | H5_VOL_RESERVED 256
#define | H5VL_CAP_FLAG_ASYNC 0x0000000000000002
#define | H5VL_CAP_FLAG_ATTR_BASIC 0x0000000000000008
#define | H5VL_CAP_FLAG_ATTR_MORE 0x0000000000000010
#define | H5VL_CAP_FLAG_ATTR_REF 0x0000000000200000
#define | H5VL_CAP_FLAG_BY_IDX 0x0000000004000000
#define | H5VL_CAP_FLAG_CREATION_ORDER 0x0000000000800000
#define | H5VL_CAP_FLAG_DATASET_BASIC 0x0000000000000020
#define | H5VL_CAP_FLAG_DATASET_MORE 0x0000000000000040
#define | H5VL_CAP_FLAG_EXTERNAL_LINKS 0x0000000020000000
#define | H5VL_CAP_FLAG_FILE_BASIC 0x0000000000000080
#define | H5VL_CAP_FLAG_FILE_MORE 0x0000000000000100
#define | H5VL_CAP_FLAG_FILL_VALUES 0x0000001000000000
#define | H5VL_CAP_FLAG_FILTERS 0x0000000800000000
#define | H5VL_CAP_FLAG_FLUSH_REFRESH 0x0000000010000000
#define | H5VL_CAP_FLAG_GET_PLIST 0x0000000008000000
#define | H5VL_CAP_FLAG_GROUP_BASIC 0x0000000000000200
#define | H5VL_CAP_FLAG_GROUP_MORE 0x0000000000000400
#define | H5VL_CAP_FLAG_HARD_LINKS 0x0000000040000000
#define | H5VL_CAP_FLAG_ITERATE 0x0000000001000000
#define | H5VL_CAP_FLAG_LINK_BASIC 0x0000000000000800
#define | H5VL_CAP_FLAG_LINK_MORE 0x0000000000001000
#define | H5VL_CAP_FLAG_MAP_BASIC 0x0000000000002000
#define | H5VL_CAP_FLAG_MAP_MORE 0x0000000000004000
#define | H5VL_CAP_FLAG_MOUNT 0x0000000400000000
#define | H5VL_CAP_FLAG_NATIVE_FILES 0x0000000000000004
#define | H5VL_CAP_FLAG_NONE 0x0000000000000000
#define | H5VL_CAP_FLAG_OBJ_REF 0x0000000000080000
#define | H5VL_CAP_FLAG_OBJECT_BASIC 0x0000000000008000
#define | H5VL_CAP_FLAG_OBJECT_MORE 0x0000000000010000
#define | H5VL_CAP_FLAG_REF_BASIC 0x0000000000020000
#define | H5VL_CAP_FLAG_REF_MORE 0x0000000000040000
#define | H5VL_CAP_FLAG_REG_REF 0x0000000000100000
#define | H5VL_CAP_FLAG_SOFT_LINKS 0x0000000080000000
#define | H5VL_CAP_FLAG_STORAGE_SIZE 0x0000000002000000
#define | H5VL_CAP_FLAG_STORED_DATATYPES 0x0000000000400000
#define | H5VL_CAP_FLAG_THREADSAFE 0x0000000000000001
#define | H5VL_CAP_FLAG_TRACK_TIMES 0x0000000200000000
#define | H5VL_CAP_FLAG_UD_LINKS 0x0000000100000000
#define | H5VL_OPT_QUERY_COLLECTIVE 0x0020
#define | H5VL_OPT_QUERY_MODIFY_METADATA 0x0010
#define | H5VL_OPT_QUERY_MULTI_OBJ 0x0080
#define | H5VL_OPT_QUERY_NO_ASYNC 0x0040
#define | H5VL_OPT_QUERY_QUERY_METADATA 0x0008
#define | H5VL_OPT_QUERY_READ_DATA 0x0002
#define | H5VL_OPT_QUERY_SUPPORTED 0x0001
#define | H5VL_OPT_QUERY_WRITE_DATA 0x0004
#define | H5VL_VERSION 3
| Version number of VOL class struct & callbacks.

## Typedefs
typedef int | H5VL_class_value_t
| VOL connector identifiers.

## Enumerations
enum | H5VL_subclass_t { H5VL_SUBCLS_NONE , H5VL_SUBCLS_INFO , H5VL_SUBCLS_WRAP , H5VL_SUBCLS_ATTR , H5VL_SUBCLS_DATASET , H5VL_SUBCLS_DATATYPE , H5VL_SUBCLS_FILE , H5VL_SUBCLS_GROUP , H5VL_SUBCLS_LINK , H5VL_SUBCLS_OBJECT , H5VL_SUBCLS_REQUEST , H5VL_SUBCLS_BLOB , H5VL_SUBCLS_TOKEN }

## Functions
herr_t | H5VLclose (hid_t connector_id)
| Closes a VOL connector identifier.
hid_t | H5VLget_connector_id (hid_t obj_id)
| Retrieves the VOL connector identifier for a given object identifier.
hid_t | H5VLget_connector_id_by_name (const char *name)
| Retrieves the identifier for a registered VOL connector name.
hid_t | H5VLget_connector_id_by_value (H5VL_class_value_t connector_value)
| Retrieves the identifier for a registered VOL connector value.
ssize_t | H5VLget_connector_name (hid_t id, char *name, size_t size)
| Retrieves a connector name for a VOL.
htri_t | H5VLis_connector_registered_by_name (const char *name)
| Tests whether a VOL class has been registered under a certain name.
htri_t | H5VLis_connector_registered_by_value (H5VL_class_value_t connector_value)
| Tests whether a VOL class has been registered for a given value.
herr_t | H5VLobject_is_native (hid_t obj_id, bool *is_native)
| Determines whether an object ID represents a native VOL connector object.
herr_t | H5VLquery_optional (hid_t obj_id, H5VL_subclass_t subcls, int opt_type, uint64_t *flags)
| Determine if a VOL connector supports a particular optional callback operation.
hid_t | H5VLregister_connector_by_name (const char *connector_name, hid_t vipl_id)
| Registers a new VOL connector by name.
hid_t | H5VLregister_connector_by_value (H5VL_class_value_t connector_value, hid_t vipl_id)
| Registers a new VOL connector by value.
herr_t | H5VLunregister_connector (hid_t connector_id)
| Removes a VOL connector identifier from the library.

## Macro Definition Documentation

## ◆ H5_VOL_INVALID

#define H5_VOL_INVALID (-1)

Invalid ID for VOL connector ID

Since
  1.12.0

## ◆ H5_VOL_MAX

#define H5_VOL_MAX 65535

Maximum VOL connector ID

Since
  1.12.0

## ◆ H5_VOL_NATIVE

#define H5_VOL_NATIVE 0

Native HDF5 file format VOL connector

Since
  1.12.0

## ◆ H5_VOL_RESERVED

#define H5_VOL_RESERVED 256

VOL connector IDs below this value are reserved for library use

Since
  1.12.0

## ◆ H5VL_CAP_FLAG_ASYNC

#define H5VL_CAP_FLAG_ASYNC 0x0000000000000002

Connector performs operations asynchronously

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_ATTR_BASIC

#define H5VL_CAP_FLAG_ATTR_BASIC 0x0000000000000008

H5A create/delete/exists/open/close/read/write

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_ATTR_MORE

#define H5VL_CAP_FLAG_ATTR_MORE 0x0000000000000010

All other H5A API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_ATTR_REF

#define H5VL_CAP_FLAG_ATTR_REF 0x0000000000200000

Connector supports attribute references

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_BY_IDX

#define H5VL_CAP_FLAG_BY_IDX 0x0000000004000000

"by index" API calls are supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_CREATION_ORDER

#define H5VL_CAP_FLAG_CREATION_ORDER 0x0000000000800000

Connector tracks creation order

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_DATASET_BASIC

#define H5VL_CAP_FLAG_DATASET_BASIC 0x0000000000000020

H5D create/open/close/read/write

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_DATASET_MORE

#define H5VL_CAP_FLAG_DATASET_MORE 0x0000000000000040

All other H5D API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_EXTERNAL_LINKS

#define H5VL_CAP_FLAG_EXTERNAL_LINKS 0x0000000020000000

External links are supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_FILE_BASIC

#define H5VL_CAP_FLAG_FILE_BASIC 0x0000000000000080

H5F create/open/close/read/write

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_FILE_MORE

#define H5VL_CAP_FLAG_FILE_MORE 0x0000000000000100

All other H5F API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_FILL_VALUES

#define H5VL_CAP_FLAG_FILL_VALUES 0x0000001000000000

Connector allows fill values to be set

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_FILTERS

#define H5VL_CAP_FLAG_FILTERS 0x0000000800000000

Connector implements a filter pipeline

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_FLUSH_REFRESH

#define H5VL_CAP_FLAG_FLUSH_REFRESH 0x0000000010000000

flush/refresh calls are supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_GET_PLIST

#define H5VL_CAP_FLAG_GET_PLIST 0x0000000008000000

Connector can return the property lists used to create an object

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_GROUP_BASIC

#define H5VL_CAP_FLAG_GROUP_BASIC 0x0000000000000200

H5G create/open/close

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_GROUP_MORE

#define H5VL_CAP_FLAG_GROUP_MORE 0x0000000000000400

All other H5G API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_HARD_LINKS

#define H5VL_CAP_FLAG_HARD_LINKS 0x0000000040000000

Hard links are supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_ITERATE

#define H5VL_CAP_FLAG_ITERATE 0x0000000001000000

Connector supports iteration functions

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_LINK_BASIC

#define H5VL_CAP_FLAG_LINK_BASIC 0x0000000000000800

H5L exists/delete

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_LINK_MORE

#define H5VL_CAP_FLAG_LINK_MORE 0x0000000000001000

All other H5L API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_MAP_BASIC

#define H5VL_CAP_FLAG_MAP_BASIC 0x0000000000002000

H5M create/open/close/get*type/get_count/put/get/exists/delete

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_MAP_MORE

#define H5VL_CAP_FLAG_MAP_MORE 0x0000000000004000

All other H5M API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_MOUNT

#define H5VL_CAP_FLAG_MOUNT 0x0000000400000000

H5Fmount/unmount supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_NATIVE_FILES

#define H5VL_CAP_FLAG_NATIVE_FILES 0x0000000000000004

Connector produces native file format

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_NONE

#define H5VL_CAP_FLAG_NONE 0x0000000000000000

No special connector capabilities

Since
  1.12.0

## ◆ H5VL_CAP_FLAG_OBJ_REF

#define H5VL_CAP_FLAG_OBJ_REF 0x0000000000080000

Connector supports object references

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_OBJECT_BASIC

#define H5VL_CAP_FLAG_OBJECT_BASIC 0x0000000000008000

H5O open/close/exists

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_OBJECT_MORE

#define H5VL_CAP_FLAG_OBJECT_MORE 0x0000000000010000

All other H5O API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_REF_BASIC

#define H5VL_CAP_FLAG_REF_BASIC 0x0000000000020000

H5Rdestroy

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_REF_MORE

#define H5VL_CAP_FLAG_REF_MORE 0x0000000000040000

All other H5R API calls

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_REG_REF

#define H5VL_CAP_FLAG_REG_REF 0x0000000000100000

Connector supports regional references

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_SOFT_LINKS

#define H5VL_CAP_FLAG_SOFT_LINKS 0x0000000080000000

Soft links are supported

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_STORAGE_SIZE

#define H5VL_CAP_FLAG_STORAGE_SIZE 0x0000000002000000

Connector can return a meaningful storage size

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_STORED_DATATYPES

#define H5VL_CAP_FLAG_STORED_DATATYPES 0x0000000000400000

Connector supports stored datatypes

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_THREADSAFE

#define H5VL_CAP_FLAG_THREADSAFE 0x0000000000000001

Connector is threadsafe

Since
  1.12.0

## ◆ H5VL_CAP_FLAG_TRACK_TIMES

#define H5VL_CAP_FLAG_TRACK_TIMES 0x0000000200000000

Connector tracks creation, etc. times

Since
  1.14.0

## ◆ H5VL_CAP_FLAG_UD_LINKS

#define H5VL_CAP_FLAG_UD_LINKS 0x0000000100000000

User-defined links are supported

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_COLLECTIVE

#define H5VL_OPT_QUERY_COLLECTIVE 0x0020

Operation is collective (operations without this flag are assumed to be independent)

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_MODIFY_METADATA

#define H5VL_OPT_QUERY_MODIFY_METADATA 0x0010

Operation modifies metadata for object

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_MULTI_OBJ

#define H5VL_OPT_QUERY_MULTI_OBJ 0x0080

Operation involves multiple objects

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_NO_ASYNC

#define H5VL_OPT_QUERY_NO_ASYNC 0x0040

Operation may NOT be executed asynchronously

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_QUERY_METADATA

#define H5VL_OPT_QUERY_QUERY_METADATA 0x0008

Operation reads metadata for object

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_READ_DATA

#define H5VL_OPT_QUERY_READ_DATA 0x0002

Operation reads data for object

Since
  1.14.0

## ◆ H5VL_OPT_QUERY_WRITE_DATA

#define H5VL_OPT_QUERY_WRITE_DATA 0x0004

Operation writes data for object

Since
  1.14.0