vd-cache-plugin.h revision cd6f71bc352f550074f1ba2c830a2cf2f0b3dd46
* The capabilities of the backend. * Pointer to a NULL-terminated array of strings, containing the supported * file extensions. Note that some backends do not work on files, so this * pointer may just contain NULL. * Pointer to an array of structs describing each supported config key. * Terminated by a NULL config key. Note that some backends do not support * the configuration interface, so this pointer may just contain NULL. * Mandatory if the backend sets VD_CAP_CONFIG. * Handle of loaded plugin library, NIL_RTLDRMOD for static backends. * Probes the given image. * @returns VBox status code. * @param pszFilename Name of the image file. * @param pVDIfsDisk Pointer to the per-disk VD interface list. * @param pVDIfsImage Pointer to the per-image VD interface list. * @returns VBox status code. * @param pszFilename Name of the image file to open. Guaranteed to be available and * unchanged during the lifetime of this image. * @param uOpenFlags Image file open mode, see VD_OPEN_FLAGS_* constants. * @param pVDIfsDisk Pointer to the per-disk VD interface list. * @param pVDIfsImage Pointer to the per-image VD interface list. * @param ppBackendData Opaque state data for this image. * @returns VBox status code. * @param pszFilename Name of the image file to create. Guaranteed to be available and * unchanged during the lifetime of this image. * @param cbSize Image size in bytes. * @param uImageFlags Flags specifying special image features. * @param pszComment Pointer to image comment. NULL is ok. * @param pUuid New UUID of the image. Not NULL. * @param uOpenFlags Image file open mode, see VD_OPEN_FLAGS_* constants. * @param uPercentStart Starting value for progress percentage. * @param uPercentSpan Span for varying progress percentage. * @param pVDIfsDisk Pointer to the per-disk VD interface list. * @param pVDIfsImage Pointer to the per-image VD interface list. * @param pVDIfsOperation Pointer to the per-operation VD interface list. * @param ppBackendData Opaque state data for this image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param fDelete If true, delete the image from the host disk. * Read data from a cache image. The area read never crosses a block * @returns VBox status code. * @returns VERR_VD_BLOCK_FREE if this image contains no data for this block. * @param pBackendData Opaque state data for this image. * @param uOffset Offset to start reading from. * @param pvBuf Where to store the read bits. * @param cbRead Number of bytes to read. * @param pcbActuallyRead Pointer to returned number of bytes read. * Write data to a cache image. The area written never crosses a block * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param uOffset Offset to start writing to. * @param pvBuf Where to retrieve the written bits. * @param cbWrite Number of bytes to write. * @param pcbWriteProcess Pointer to returned number of bytes that could * @returns VBox status code. * @param pBackendData Opaque state data for this image. * Get the version of a cache image. * @returns version of cache image. * @param pBackendData Opaque state data for this image. * Get the capacity of a cache image. * @returns size of cache image in bytes. * @param pBackendData Opaque state data for this image. * Get the file size of a cache image. * @returns size of cache image in bytes. * @param pBackendData Opaque state data for this image. * Get the image flags of a cache image. * @returns image flags of cache image. * @param pBackendData Opaque state data for this image. * Get the open flags of a cache image. * @returns open flags of cache image. * @param pBackendData Opaque state data for this image. * Set the open flags of a cache image. May cause the image to be locked * in a different mode or be reopened (which can fail). * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param uOpenFlags New open flags for this image. * Get comment of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pszComment Where to store the comment. * @param cbComment Size of the comment buffer. * Set comment of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pszComment Where to get the comment from. NULL resets comment. * The comment is silently truncated if the image format * Get UUID of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pUuid Where to store the image UUID. * Set UUID of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pUuid Where to get the image UUID from. * Get last modification UUID of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pUuid Where to store the image modification UUID. * Set last modification UUID of a cache image. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pUuid Where to get the image modification UUID from. * Dump information about a cache image. * @param pBackendData Opaque state data for this image. * Start an asynchronous read request. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param uOffset The offset of the virtual disk to read from. * @param cbRead How many bytes to read. * @param pIoCtx I/O context associated with this request. * @param pcbActuallyRead Pointer to returned number of bytes read. * Start an asynchronous write request. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param uOffset The offset of the virtual disk to write to. * @param cbWrite How many bytes to write. * @param pIoCtx I/O context associated with this request. * @param pcbWriteProcess Pointer to returned number of bytes that could * be processed. In case the function returned * VERR_VD_BLOCK_FREE this is the number of bytes * that could be written in a full block write, * amount of (previously read) padding data. * @returns VBox status code. * @param pBackendData Opaque state data for this image. * @param pIoCtx I/O context associated with this request. /** Returns a human readable hard disk location string given a * set of hard disk configuration keys. The returned string is an * equivalent of the full file path for image-based hard disks. * Mandatory for backends with no VD_CAP_FILE and NULL otherwise. */ /** Returns a human readable hard disk name string given a * set of hard disk configuration keys. The returned string is an * equivalent of the file name part in the full file path for * image-based hard disks. Mandatory for backends with no * VD_CAP_FILE and NULL otherwise. */ /** Pointer to VD backend. */ /** Constant pointer to VD backend. */ /** Initialization entry point. */ /** The prefix to identify Storage Plugins. */ /** The size of the prefix excluding the '\\0' terminator. */