Constants
All constants are accessible through the cbsConstants namespace declared in the cbfsstorage.h file.
Error Codes
CBFSSTORAGE_ERR_INVALID_VAULT_FILE | -1 |
The specified file is not a CBFS Storage vault.
|
CBFSSTORAGE_ERR_INVALID_PAGE_SIZE | -2 |
The specified page size is not valid.
|
CBFSSTORAGE_ERR_VAULT_CORRUPTED | -3 |
The vault is corrupted.
|
CBFSSTORAGE_ERR_TOO_MANY_TRANSACTIONS | -4 |
Too many transactions active.
|
CBFSSTORAGE_ERR_FILE_ALREADY_EXISTS | -5 |
A file, directory, symbolic link, or alternate stream with the specified name already exists.
|
CBFSSTORAGE_ERR_TRANSACTIONS_STILL_ACTIVE | -6 |
One or more transactions are still active.
|
CBFSSTORAGE_ERR_TAG_ALREADY_EXISTS | -7 |
The specified file tag already exists.
|
CBFSSTORAGE_ERR_FILE_NOT_FOUND | -8 |
The specified file, directory, symbolic link, or alternate stream was not found.
|
CBFSSTORAGE_ERR_PATH_NOT_FOUND | -9 |
The specified path was not found.
|
CBFSSTORAGE_ERR_SHARING_VIOLATION | -10 |
The specified file or alternate stream is already open in an exclusive access mode.
|
CBFSSTORAGE_ERR_SEEK_BEYOND_EOF | -11 |
Cannot seek beyond the end of a file or alternate stream.
|
CBFSSTORAGE_ERR_NO_MORE_FILES | -12 |
There are no other files, directories, symbolic links, or alternate streams that match the search criteria.
|
CBFSSTORAGE_ERR_INVALID_FILE_NAME | -13 |
The specified name is not valid.
|
CBFSSTORAGE_ERR_VAULT_ACTIVE | -14 |
The requested operation cannot be performed while a vault is open.
|
CBFSSTORAGE_ERR_VAULT_NOT_ACTIVE | -15 |
A vault must be open before the requested operation can be performed.
|
CBFSSTORAGE_ERR_INVALID_PASSWORD | -16 |
The specified password is incorrect.
|
CBFSSTORAGE_ERR_VAULT_READ_ONLY | -17 |
The requested operation cannot be performed; the vault is open in read-only mode.
|
CBFSSTORAGE_ERR_NO_ENCRYPTION_HANDLERS | -18 |
Can't use custom encryption; no custom encryption event handlers provided.
|
CBFSSTORAGE_ERR_OUT_OF_MEMORY | -19 |
Out of memory.
|
CBFSSTORAGE_ERR_SYMLINK_DESTINATION_NOT_FOUND | -20 |
A symbolic link's destination file could not be found.
|
CBFSSTORAGE_ERR_FILE_IS_NOT_SYMLINK | -21 |
The specified file is not a symbolic link.
|
CBFSSTORAGE_ERR_BUFFER_TOO_SMALL | -22 |
The specified buffer is too small to hold the requested value.
|
CBFSSTORAGE_ERR_BAD_COMPRESSED_DATA | -23 |
Decompression failed (possible due to corruption).
|
CBFSSTORAGE_ERR_INVALID_PARAMETER | -24 |
Invalid parameter.
|
CBFSSTORAGE_ERR_VAULT_FULL | -25 |
The vault is full (and cannot be automatically resized).
|
CBFSSTORAGE_ERR_INTERRUPTED_BY_USER | -26 |
Operation interrupted by user.
|
CBFSSTORAGE_ERR_TAG_NOT_FOUND | -27 |
The specified file tag was not found.
|
CBFSSTORAGE_ERR_DIRECTORY_NOT_EMPTY | -28 |
The specified directory is not empty.
|
CBFSSTORAGE_ERR_HANDLE_CLOSED | -29 |
The file or alternate stream was closed unexpectedly; the handle is no longer valid.
|
CBFSSTORAGE_ERR_INVALID_STREAM_HANDLE | -30 |
Invalid file or alternate stream handle.
|
CBFSSTORAGE_ERR_FILE_ACCESS_DENIED | -31 |
Access denied.
|
CBFSSTORAGE_ERR_NO_COMPRESSION_HANDLERS | -32 |
Can't use custom compression; no custom compression event handlers provided.
|
CBFSSTORAGE_ERR_NOT_IMPLEMENTED | -33 |
Not implemented in this version of CBFS Storage.
|
CBFSSTORAGE_ERR_DRIVER_NOT_INSTALLED | -35 |
The CBFS Storage system driver has not been installed.
|
CBFSSTORAGE_ERR_NEW_VAULT_VERSION | -37 |
The specified vault cannot be opened, it was created using a newer version of CBFS Storage.
|
CBFSSTORAGE_ERR_FILE_IS_NOT_DIRECTORY | -38 |
The specified file is not a directory.
|
CBFSSTORAGE_ERR_INVALID_TAG_DATA_TYPE | -39 |
The specified file tag data type is not valid.
|
CBFSSTORAGE_ERR_VAULT_FILE_DOES_NOT_EXIST | -40 |
The specified vault storage file does not exist.
|
CBFSSTORAGE_ERR_VAULT_FILE_ALREADY_EXISTS | -41 |
The specified vault storage file already exists.
|
CBFSSTORAGE_ERR_CALLBACK_MODE_FAILURE | -42 |
Some callback mode event handler has returned an unidentified error.
|
CBFSSTORAGE_ERR_EXTERNAL_ERROR | -43 |
External library could not be initialized or used.
|
File Attributes
CBFSSTORAGE_FATTR_FILE | 0x00000001 |
The entry is a file.
|
CBFSSTORAGE_FATTR_DIRECTORY | 0x00000002 |
The entry is a directory.
|
CBFSSTORAGE_FATTR_DATA_STREAM | 0x00000004 |
The entry is an alternate data stream.
|
CBFSSTORAGE_FATTR_COMPRESSED | 0x00000008 |
The file or stream is compressed.
|
CBFSSTORAGE_FATTR_ENCRYPTED | 0x00000010 |
The file or stream is encrypted.
|
CBFSSTORAGE_FATTR_SYMLINK | 0x00000020 |
The entry is a symbolic link.
|
CBFSSTORAGE_FATTR_READONLY | 0x00000040 |
The file is read-only.
This attribute is not used by CBFS Storage, but it can be set and retrieved. |
CBFSSTORAGE_FATTR_ARCHIVE | 0x00000080 |
The file requires archiving.
This attribute is not used by CBFS Storage, but it can be set and retrieved. |
CBFSSTORAGE_FATTR_HIDDEN | 0x00000100 |
The file is hidden.
This attribute is not used by CBFS Storage, but it can be set and retrieved. |
CBFSSTORAGE_FATTR_SYSTEM | 0x00000200 |
The file is a system file.
This attribute is not used by CBFS Storage, but it can be set and retrieved. |
CBFSSTORAGE_FATTR_TEMPORARY | 0x00000400 |
The file is temporary.
This attribute is not used by CBFS Storage, but it can be set and retrieved. |
CBFSSTORAGE_FATTR_DELETE_ON_CLOSE | 0x00000800 |
The file should be deleted when the last handle to the file is closed.
This attribute is currently not supported by CBFS Storage. |
CBFSSTORAGE_FATTR_RESERVED_0 | 0x00001000 |
Reserved.
|
CBFSSTORAGE_FATTR_RESERVED_1 | 0x00002000 |
Reserved.
|
CBFSSTORAGE_FATTR_RESERVED_2 | 0x00004000 |
Reserved.
|
CBFSSTORAGE_FATTR_RESERVED_3 | 0x00008000 |
Reserved.
|
CBFSSTORAGE_FATTR_NO_USER_CHANGE | 0x0000F03F |
A mask which includes all attributes that cannot be changed.
Applications cannot use the SetFileAttributes method to directly change any of the following attributes: FILE, DIRECTORY, DATA_STREAM, COMPRESSED, ENCRYPTED, SYMLINK, RESERVED_0, RESERVED_1, RESERVED_2, RESERVED_3. |
CBFSSTORAGE_FATTR_USER_DEFINED | 0x7FF00000 |
A mask for application-defined attributes.
Applications can use the SetFileAttributes method to set custom attributes, so long as their values are covered by this mask. |
CBFSSTORAGE_FATTR_ANY_FILE | 0x7FFFFFFF |
A mask which includes any and all attributes.
|
Check and Repair Flags
CBFSSTORAGE_CR_CHECK_ONLY | 0x00000001 |
Check only, don't attempt any repairs.
|
CBFSSTORAGE_CR_CHECK_ALL_PAGES | 0x00000002 |
Check all vault pages, including empty ones.
(When this flag is not present, only the vault pages which are marked as occupied are checked.) |
Format Flags
CBFSSTORAGE_FMF_FAST_FORMAT | 0x00000001 |
Perform a fast format; only initialize the pages necessary for storing the filesystem structure.
When this flag is not set, all pages of the new vault are initialized. |
Search Flags
CBFSSTORAGE_FF_NEED_NAME | 0x00000001 |
Include entry names (without paths) when returning search results.
|
CBFSSTORAGE_FF_NEED_FULL_NAME | 0x00000002 |
Include fully-qualified entry names when returning search results.
|
CBFSSTORAGE_FF_NEED_ATTRIBUTES | 0x00000004 |
Include entry attributes when returning search results.
|
CBFSSTORAGE_FF_NEED_SIZE | 0x00000008 |
Include entry sizes when returning search results.
|
CBFSSTORAGE_FF_NEED_METADATA_SIZE | 0x00000010 |
Include entry metadata sizes when returning search results.
|
CBFSSTORAGE_FF_NEED_TIMES | 0x00000020 |
Include entry times when returning search results.
|
CBFSSTORAGE_FF_NEED_LINK_DEST | 0x00000040 |
Include symbolic link destinations when returning search results.
|
CBFSSTORAGE_FF_EMULATE_FAT | 0x00001000 |
Inserts . and .. pseudo-entries into search results for all directories except the root one.
|
CBFSSTORAGE_FF_RECURSIVE | 0x00002000 |
Search recursively in all subdirectories.
|
CBFSSTORAGE_FF_CASE_INSENSITIVE | 0x00004000 |
Forces case-insensitive search, even if the vault is case-sensitive.
|
Vault Open Modes
CBFSSTORAGE_OM_CREATE_NEW | 0 |
Creates a new vault if possible, failing if one already exists.
|
CBFSSTORAGE_OM_CREATE_ALWAYS | 1 |
Creates a new vault, overwriting an existing one if necessary.
|
CBFSSTORAGE_OM_OPEN_EXISTING | 2 |
Opens a vault if it exists; fails otherwise.
|
CBFSSTORAGE_OM_OPEN_ALWAYS | 3 |
Opens a vault if it exists; creates a new one otherwise.
|
Vault State Flags
CBFSSTORAGE_ST_FIXED_SIZE | 0x00000001 |
The vault is fixed-size.
|
CBFSSTORAGE_ST_READ_ONLY | 0x00000002 |
The vault was opened in read-only mode.
Please refer to the ReadOnly property for more information. |
CBFSSTORAGE_ST_CORRUPTED | 0x00000004 |
The vault is corrupted.
Applications can use the CheckAndRepair method to try to repair vault corruption. Please refer to the Vault Corruption topic for more information. |
CBFSSTORAGE_ST_TRANSACTIONS_USED | 0x00000008 |
The vault was opened in journaling mode.
Please refer to the UseJournaling property for more information. |
CBFSSTORAGE_ST_ACCESS_TIME_USED | 0x00000010 |
Last access times are being tracked.
Please refer to the UseAccessTime property for more information. |
CBFSSTORAGE_ST_ENCRYPTED | 0x00000020 |
The vault is encrypted with whole-vault encryption.
Please refer to the Encryption topic for more information. |
CBFSSTORAGE_ST_VALID_PASSWORD_SET | 0x00000040 |
The correct whole-vault encryption password has been provided.
Please refer to the Encryption topic for more information. |
CBFSSTORAGE_ST_PHYSICAL_VOLUME | 0x00000080 |
The vault is backed by a storage volume or partition formatted with the CBFS Storage filesystem.
This flag only applies when using the CBDrive class. |
CBFSSTORAGE_ST_PARTED | 0x00000100 |
The vault's contents are split across multiple files on disk.
Please refer to the Multipart Vaults topic for more information. |
Tag Data Types
CBFSSTORAGE_TDT_RAWDATA | 0x0 |
The tag is untyped and must be addressed by Id.
|
CBFSSTORAGE_TDT_BOOLEAN | 0x1 |
The tag contains Boolean data and must be addressed by name.
|
CBFSSTORAGE_TDT_STRING | 0x2 |
The tag contains String (UTF-16LE) data and must be addressed by name.
|
CBFSSTORAGE_TDT_DATETIME | 0x3 |
The tag contains DateTime data and must be addressed by name.
|
CBFSSTORAGE_TDT_NUMBER | 0x4 |
The tag contains numeric (signed 64-bit) data and must be addressed by name.
|
CBFSSTORAGE_TDT_ANSISTRING | 0x5 |
The tag contains AnsiString (8-bit string) data and must be addressed by name.
|
Path Separator Characters
CBFSSTORAGE_PSC_BACKSLASH | 92 |
Backslash ('\\').
Windows path separator. |
CBFSSTORAGE_PSC_SLASH | 47 |
Forward slash ('/').
Unix-style path separator. |
Compression Modes
CBFSSTORAGE_CM_NONE | 0 |
Don't use compression.
|
CBFSSTORAGE_CM_DEFAULT | 1 |
Use default compression (zlib).
|
CBFSSTORAGE_CM_CUSTOM | 2 |
Use event-based custom compression.
Compression level is not used. |
CBFSSTORAGE_CM_ZLIB | 3 |
Use zlib compression.
Valid compression levels are 1-9. |
CBFSSTORAGE_CM_RLE | 4 |
Use RLE compression.
Compression level is not used. |
Encryption Modes
CBFSSTORAGE_EM_NONE | 0x0 |
Don't use encryption.
|
CBFSSTORAGE_EM_DEFAULT | 0x1 |
Use default encryption (CBFSSTORAGE_EM_XTS_AES256_PBKDF2_HMAC_SHA256).
|
CBFSSTORAGE_EM_XTS_AES256_PBKDF2_HMAC_SHA256 | 0x2 |
Use AES256 encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
|
CBFSSTORAGE_EM_CUSTOM256_PBKDF2_HMAC_SHA256 | 0x3 |
Use event-based custom 256-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
256-bit (32-byte) block size. |
CBFSSTORAGE_EM_CUSTOM512_PBKDF2_HMAC_SHA256 | 0x4 |
Use event-based custom 512-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
512-bit (64-byte) block size. |
CBFSSTORAGE_EM_CUSTOM1024_PBKDF2_HMAC_SHA256 | 0x5 |
Use event-based custom 1024-bit encryption with PBKDF2 key derivation based on a HMAC_SHA256 key hash.
1024-bit (128-byte) block size. |
CBFSSTORAGE_EM_CUSTOM256_CUSTOM_KEY_DERIVE | 0x23 |
Use event-based custom 256-bit encryption with custom key derivation.
256-bit (32-byte) block size. |
CBFSSTORAGE_EM_CUSTOM512_CUSTOM_KEY_DERIVE | 0x24 |
Use event-based custom 512-bit encryption with custom key derivation.
512-bit (64-byte) block size. |
CBFSSTORAGE_EM_CUSTOM1024_CUSTOM_KEY_DERIVE | 0x25 |
Use event-based custom 1024-bit encryption with custom key derivation.
1024-bit (128-byte) block size. |
CBFSSTORAGE_EM_CUSTOM256_DIRECT_KEY | 0x43 |
Use event-based custom 256-bit encryption with no key derivation.
256-bit (32-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_CUSTOM512_DIRECT_KEY | 0x44 |
Use event-based custom 512-bit encryption with no key derivation.
512-bit (64-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_CUSTOM1024_DIRECT_KEY | 0x45 |
Use event-based custom 1024-bit encryption with no key derivation.
1024-bit (128-byte) block size. Useful for cases where the password is an identifier for an external key and should not be used for key derivation. |
CBFSSTORAGE_EM_UNKNOWN | 0xFF |
Unidentified or unknown encryption.
|
File Open Modes
CBFSSTORAGE_FOM_CREATE_NEW | 0 |
Creates a new file or alternate stream if possible, failing if one already exists.
|
CBFSSTORAGE_FOM_CREATE_ALWAYS | 1 |
Creates a new file or stream, overwriting an existing one if necessary.
|
CBFSSTORAGE_FOM_OPEN_EXISTING | 2 |
Opens a file or stream if it exists; fails otherwise.
|
CBFSSTORAGE_FOM_OPEN_ALWAYS | 3 |
Opens a file or stream if it exists; creates a new one otherwise.
|
Progress Operations
CBFSSTORAGE_PO_FORMATTING | 0 |
Formatting a vault.
|
CBFSSTORAGE_PO_CHECKING_1 | 1 |
Checking a vault (stage 1).
|
CBFSSTORAGE_PO_CHECKING_2 | 2 |
Checking a vault (stage 2).
|
CBFSSTORAGE_PO_CHECKING_3 | 3 |
Checking a vault (stage 3).
|
CBFSSTORAGE_PO_CHECKING_4 | 4 |
Checking a vault (stage 4).
|
CBFSSTORAGE_PO_CHECKING_5 | 5 |
Checking a vault (stage 5).
|
CBFSSTORAGE_PO_PAGE_CORRUPTED | 8 |
Processing a corrupted vault page.
|
CBFSSTORAGE_PO_PAGE_ORPHANED | 9 |
Processing an orphaned vault page.
|
CBFSSTORAGE_PO_COMPRESSING | 10 |
Compressing a file or alternate stream.
|
CBFSSTORAGE_PO_DECOMPRESSING | 11 |
Decompressing a file or alternate stream.
|
CBFSSTORAGE_PO_ENCRYPTING | 12 |
Encrypting a vault, file, or alternate stream.
|
CBFSSTORAGE_PO_DECRYPTING | 13 |
Decrypting a vault, file, or alternate stream
|
CBFSSTORAGE_PO_COMPACTING | 14 |
Compacting a vault.
|
CBFSSTORAGE_PO_RESIZING | 15 |
Resizing a vault.
|
CBFSSTORAGE_PO_CALCULATING_SIZE | 16 |
Calculating a vault's size.
|
CBFSSTORAGE_PO_COPYING_FILES_TO_VAULT | 17 |
Copying files to a vault.
|
CBFSSTORAGE_PO_COPYING_FILES_FROM_VAULT | 18 |
Copying files from a vault.
|
Copy Flags
CBFSSTORAGE_CFF_OVERWRITE_NONE | 0x00000000 |
Never overwrite destination files.
|
CBFSSTORAGE_CFF_OVERWRITE_IF_NEWER | 0x00000001 |
Overwrite a destination file only if the source file is newer.
|
CBFSSTORAGE_CFF_OVERWRITE_ALL | 0x00000002 |
Always overwrite destination files.
|
CBFSSTORAGE_CFF_INCLUDE_SUBDIRS_WITH_CONTENTS | 0x00010000 |
Include all subdirectories in source directory, and their contents, recursively.
|
CBFSSTORAGE_CFF_INCLUDE_SUBDIRS_NO_CONTENTS | 0x00020000 |
Include all subdirectories in the source directory, without their contents.
|
Module Flags
MODULE_DRIVER_PNP_BUS | 0x00000001 |
PnP Bus Driver (.sys file).
This module must be installed if the application wishes to make use of Plug-and-Play (PnP) storage features in the CBDisk, CBDrive, and CBMemDrive class. PnP storage devices are those visible as disks in the Device Manager, and the system treats such storage devices differently from other purely virtual devices. The virtual disk driver must be re-installed anytime this module is added or removed. |
MODULE_DRIVER_BLOCK | 0x00000002 |
Virtual disk driver (.sys file).
The product's virtual disk driver module, which provides core functionality; it must be installed for the CBDisk, CBDrive, or CBMemDrive class to function correctly. |
MODULE_DRIVER_FS | 0x00000004 |
Filesystem driver (.sys file).
The product's filesystem driver module, which provides core functionality; it must be installed for the CBDrive or CBMemDrive class to function correctly. |
MODULE_HELPER_DLL | 0x00010000 |
Shell Helper DLL (CBDriveShellHelper2020.dll)
This module provides supplementary functionality for the CBDisk, CBDrive, and CBMemDrive class; please refer to the Helper DLL topic for more information. Note: Not applicable when calling the GetDriverStatus method. |
Desired Access Flags
STG_DACCESS_READ | 0x00000001 |
Grant/deny read access.
|
STG_DACCESS_WRITE | 0x00000002 |
Grant/deny write access.
|
STG_DACCESS_READWRITE | 0x00000003 |
Grant/deny read and write access.
|
Install Flags
INSTALL_REMOVE_OLD_VERSIONS | 0x00000001 |
Uninstall drivers and helper DLLs from previous component versions (e.g., 2017).
|
INSTALL_KEEP_START_TYPE | 0x00000002 |
Keep the driver's current start type setting in the registry.
If this flag is not set (default), the installation logic will reset the driver's start type setting in the Windows registry to the default value. Setting this flag causes the installation logic to preserve the current value, which may be necessary if the user (or the application itself) set it previously. |
INSTALL_OVERWRITE_SAME_VERSION | 0x00000004 |
Install files when their version is the same as the version of already installed files.
If this flag is not set (default), the installation logic will overwrite the existing file only if the version number of the file being installed is larger than the version of the file being overwritten. Setting this flag causes the installation logic to overwrite the file even when it has the same version. |
Uninstall Version Flags
UNINSTALL_VERSION_PREVIOUS | 0x00000001 |
Uninstall modules from previous product versions.
|
UNINSTALL_VERSION_CURRENT | 0x00000002 |
Uninstall modules from the current product version.
|
UNINSTALL_VERSION_ALL | 0x00000003 |
Uninstall modules from all product versions.
|
Module Status Flags
MODULE_STATUS_NOT_PRESENT | 0x00000000 |
The specified module is not present on the system.
|
MODULE_STATUS_STOPPED | 0x00000001 |
The specified module is in the Stopped state.
|
MODULE_STATUS_RUNNING | 0x00000004 |
The specified module is loaded and running.
|
Mounting Point Flags
STGMP_SIMPLE | 0x00010000 |
Create a simple mounting point.
Simple mounting points may be local or global; and when local, can be made visible in either the current user session or another one. This flag cannot be combined with STGMP_MOUNT_MANAGER or STGMP_NETWORK, and is implied if neither of those flags are present. |
STGMP_MOUNT_MANAGER | 0x00020000 |
Create a mounting point that appears to the system as a physical device.
When the StorageType property is set to STGT_DISK_PNP, mounting points created using the system mount manager appear as physical devices in the Disk Management snap-in of the Microsoft Management Console (mmc.exe). This flag is a necessary prerequisite for creating a folder mounting point, which makes a drive accessible via an otherwise empty directory on another NTFS volume. This flag cannot be combined with STGMP_SIMPLE, STGMP_NETWORK, or STGMP_LOCAL. Only one mounting point of this type can be added to a virtual drive. |
STGMP_NETWORK | 0x00040000 |
Create a network mounting point.
Network mounting points can be further configured using the various STGMP_NETWORK_* flags described below. Applications that plan to make use of network mounting points must be sure to install the Helper DLL before doing so, otherwise Windows Explorer will not correctly recognize the "network" drive. This flag cannot be combined with STGMP_SIMPLE or STGMP_MOUNT_MANAGER. |
STGMP_LOCAL | 0x10000000 |
Specifies that a local mounting point should be created.
This flag specifies that a local mounting point should be created rather than a global one. When this flag is set, applications must also pass an appropriate value for the AddMountingPoint method's AuthenticationId parameter. Passing 0 for AuthenticationId will make the mounting point visible in the current user session. To make the mounting point visible in a different user session instead, pass the target session's Authentication ID. This flag is valid when combined with STGMP_SIMPLE or STGMP_NETWORK; it cannot be combined with STGMP_MOUNT_MANAGER. Please note that a mounting point can be made available to other computers as a network share, and network shares are always globally visible on the local machine, even if this flag is set. |
STGMP_NETWORK_ALLOW_MAP_AS_DRIVE | 0x00000001 |
Indicates that users may assign a drive letter to the share (e.g., using the 'Map network drive...' context menu item in Windows Explorer).
|
STGMP_NETWORK_HIDDEN_SHARE | 0x00000002 |
Indicates that the share should be skipped during enumeration.
Such shares are only accessible when their name is already known to the accessor. |
STGMP_NETWORK_READ_ACCESS | 0x00000004 |
Makes a read-only share available for the mounting point.
When this flag is specified, the <Server Name> part of the MountingPoint parameter value must be empty. Please refer to the Mounting Points topic for more information. This flag makes the class use the Windows API's NetShareAdd function. As per MSDN, "Only members of the Administrators, System Operators, or Power Users local group can add file shares with a call to the NetShareAdd function." |
STGMP_NETWORK_WRITE_ACCESS | 0x00000008 |
Makes a read/write share available for the mounting point.
When this flag is specified, the <Server Name> part of the MountingPoint parameter value must be empty. Please refer to the Mounting Points topic for more information. This flag makes the class use the Windows API's NetShareAdd function. As per MSDN, "Only members of the Administrators, System Operators, or Power Users local group can add file shares with a call to the NetShareAdd function." |
STGMP_NETWORK_CLAIM_SERVER_NAME | 0x00000010 |
Specifies that the server name is unique.
When this flag is specified, the driver handles IOCTL_REDIR_QUERY_PATH[_EX] requests by instructing the OS to direct all requests going to the <Server Name> part of the MountingPoint parameter's value to the driver instead. This flag should be used when the <Server Name> is unique within the local system (e.g., when the application's name is used). Using this flag allows the system to avoid delays caused by certain network requests made by various processes. This flag is also required for "net view" command to be able to show the share in the list. |
STGMP_DRIVE_LETTER_NOTIFY_ASYNC | 0x20000000 |
Causes the method to return immediately without waiting for mounting notifications to be sent to the system.
|
STGMP_AUTOCREATE_DRIVE_LETTER | 0x40000000 |
Tells the component that it should assign the drive letter automatically.
When this flag is specified, the class will automatically assign a drive letter from the list of available letters. The assigned letter is added to the end of the list of mounting points, and can be retrieved from there. Do not include a drive letter in the MountingPoint parameter's value when specifying this flag. |
Storage Type Values
STGT_DISK | 0x00000000 |
Create a regular disk device.
|
STGT_CDROM | 0x00000001 |
Create a CD-ROM or DVD device.
|
STGT_DISK_PNP | 0x00000003 |
Create a plug-and-play storage device.
Important: The CBFS Storage system driver must be installed in PnP mode for this option to function properly. |
Storage Characteristics Flags
STGC_FLOPPY_DISKETTE | 0x00000001 |
The storage is a floppy disk device.
This flag is not supported when StorageType is set to STGT_DISK_PNP. |
STGC_READONLY_DEVICE | 0x00000002 |
The storage is a read-only device.
|
STGC_WRITE_ONCE_MEDIA | 0x00000008 |
The storage device's media can only be written to once.
This flag is not supported when StorageType is set to STGT_DISK_PNP. |
STGC_REMOVABLE_MEDIA | 0x00000010 |
The storage device's media is removable.
Users may remove the storage media from the virtual drive at any time. (Note that this flag does not indicate that the virtual drive itself is removable.) |
STGC_AUTOCREATE_DRIVE_LETTER | 0x00002000 |
The system should automatically create a drive letter for the storage device.
Deprecated: Include the STGMP_AUTOCREATE_DRIVE_LETTER flag in the value passed for the AddMountingPoint method's Flags parameter instead. When this flag is present, the StorageGUID property must be set. This flag only works when StorageType is set to STGT_DISK_PNP. |
STGC_SHOW_IN_EJECTION_TRAY | 0x00004000 |
The storage device should be shown in the 'Safely Remove Hardware and Eject Media' menu in the system notification area (system tray).
This flag only works when StorageType is set to STGT_DISK_PNP. |
STGC_ALLOW_EJECTION | 0x00008000 |
The storage device can be ejected.
Users may eject the virtual drive at any time. When the virtual drive is ejected, it is destroyed. This flag only works when StorageType is set to STGT_DISK_PNP. |