Compartilhar via


FSDMGR_CreateCache (Compact 2013)

3/26/2014

This function creates a new cache. It is called by File System Disk Manager for disk cache.

Syntax

DWORD  FSDMGR_CreateCache(
    HDSK pDsk,
    DWORD dwStart,
    DWORD dwEnd,
    DWORD dwCacheSize,
    DWORD dwBlockSize,
    DWORD dwCreateFlags
);

Parameters

  • hDsk
    [in] Handle to the disk to cache.
  • dwStart
    [in] Starting block number of the disk to cache.
  • dwEnd
    [in] Ending block number of the disk to cache.
  • dwCacheSize
    [in] Number of blocks the cache can hold.
  • dwBlockSize
    [in] The size of a block, in bytes. This value is typically equal to the sector size of the disk, although this is not required.

    The block size must be a power of 2 and less than the buffer size, which is set to 64 KB by default.

  • dwCreateFlags
    [in] The following table shows possible values.

    Value

    Description

    CACHE_FLAG_WARM

    Warms the cache.

    This preloads the cache starting with the dwStart value, until the cache is filled.

    CACHE_FLAG_WRITEBACK

    Enables write-back mode for the cache.

    If not specified, the default is write-through mode.

    Upon creation of the cache in write-back mode, a low priority thread is created, which commits dirty blocks.

Return Value

A cache ID value indicates success. This ID is used in the other Disk Cache Manager functions. INVALID_CACHE_ID indicates failure, probably due to an invalid parameter or a lack of memory.

Remarks

The buffers for the cache are allocated one at a time.

If the memory allocation for a specific buffer fails, the size of the successful buffers allocated becomes the cache size.

If no buffer can be allocated, the cache is of size zero, and all read and write requests go directly to the disk.

Requirements

Header

fsdmgr.h

Library

Fsdmgr.lib

See Also

Reference

FSDMGR Functions
FSD Functions