Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This function sets the attributes of a file in an installable file system. The application does not call this function directly. Instead, it uses the corresponding standard Win32 function SetFileAttributes. The File System Disk Manager (FSDMGR) determines the file system type and calls the MyFSD _SetFileAttributesWimplementation of the function.

Syntax

BOOL MyFSD_SetFileAttributesW( 
  PVOLUME 
pVolume,
  PCWSTR 
pwsFileName, 
  DWORD 
dwFileAttributes
); 

Parameters

pVolume

[in] Pointer to the value that a file system driver (FSD) defines and passes to the FSDMGR_RegisterVolumefunction when registering the volume. The definition of this parameter can point to private structures.

pwsFileName

[in] Pointer to a string that specifies the name of the file whose attributes are to be set.

This string must not exceed MAX_PATH characters.

dwFileAttributes

[in] File attributes to set for the file. This parameter can be a combination of values. However, all other values override FILE_ATTRIBUTE_NORMAL. The following table shows possible values.

Value Description

FILE_ATTRIBUTE_ARCHIVE

Indicates that the file is an archive file. Applications use this attribute to mark files for backup or removal.

FILE_ATTRIBUTE_HIDDEN

Indicates that the file is hidden. It is not included in an ordinary directory listing.

FILE_ATTRIBUTE_NORMAL

Indicates that the file has no other attributes set. This attribute is valid only if used alone.

FILE_ATTRIBUTE_READONLY

Indicates that the file is read-only. Applications can read the file, but cannot write to it or delete it.

FILE_ATTRIBUTE_SYSTEM

Indicates that the file is part of the OS or is used exclusively by it.

FILE_ATTRIBUTE_TEMPORARY

Indicates that the file is being used for temporary storage File systems attempt to keep all of the data in memory for quicker access, rather than flushing the data back to mass storage. A temporary file is deleted by the application as soon as it is no longer needed.

Return Value

Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.

Remarks

An FSD exports this function if it supports the SetFileAttributesfunction. All FSD functions can be called on re-entry. Therefore, take this into account when developing an FSD.

FSDMGR is a DLL that manages all OS interaction with installable files systems. Each installable file system requires an FSD, which is a DLL that supports an installable file system. The name of the DLL and the names of the functions it exports start with the name of the associated installable file system. For example, if the name of file system is MyFSD, its DLL is MyFSD.dll, and its exported functions are prefaced with MyFSD_*.

FSDMGR provides services to FSDs. The FSDMGR_RegisterVolume, the FSDMGR_CreateFileHandle, and the FSDMGR_CreateSearchHandlefunctions record a DWORDof volume-specific data that an FSD associates with a volume. This volume-specific data is passed as the first parameter of these three functions.

Applications that access an installable file system use standard Win32 functions. For example, when an application creates a folder on a device that contains an installable file system, it calls the CreateDirectoryfunction. FSDMGR recognizes that the path is to a device containing an installable file system and calls the appropriate function, which in the case of the FAT file system is FATFSD_CreateDirectoryW. That is, the application calls CreateDirectory, causing FSDMGR to call FATFSD_CreateDirectoryW.

A file system must mask off any file attributes that it does not support in this function and MyFSD_CreateFileW.

The following table shows how to set the attributes that cannot be set using SetFileAttributes.

Attribute Description

FILE_ATTRIBUTE_COMPRESSED

To set a file's compression state, use the DeviceIoControlfunction with the FSCTL_SET_COMPRESSIONoperation.

FILE_ATTRIBUTE_DIRECTORY

Files cannot be converted into directories. To create a directory, use CreateDirectory.

FILE_ATTRIBUTE_ENCRYPTED

To encrypt a file, use EncryptFile.

FILE_ATTRIBUTE_REPARSE_POINT

To associate a reparse point with a file, use DeviceIoControlwith the FSCTL_SET_REPARSE_POINToperation.

FILE_ATTRIBUTE_SPARSE_FILE

To set a file's sparse attribute, use DeviceIoControlwith the FSCTL_SET_SPARSEoperation.

FILE_ATTRIBUTE_SYSTEM

This attribute cannot be set.

Requirements

Header fsdmgr.h
Library Fsdmgr.lib
Windows Embedded CE Windows CE 2.10 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also