Share via


EnterpriseExtFileSystem configuration service provider

August 13, 2015

The EnterpriseExtFileSystem configuration service provider (CSP) allows Information Technology (IT) administrators to add, retrieve, or change files in the file system through the Mobile Device Management (MDM) service. For example, you can use this configuration service provider to push a provisioning XML file or a new lock screen background image file to a device through the MDM service, and also retrieve logs from the device in the enterprise environment.

File contents are embedded directly into the syncML message, so there is a limit to the size of the file that can be retrieved from the device. The default limit is 100000 (1 MB). You can configure this limit by using the following registry key: Software\Microsoft\Provisioning\CSPs\.\Vendor\MSFT\EnterpriseExtFileSystem\MaxFileReadSize.

The following image shows the EnterpriseExtFileSystem configuration service provider in tree format as used by the Open Mobile Alliance (OMA) Device Management (DM).

The following list describes the characteristics and parameters.

  • ./Vendor/MSFT/EnterpriseExtFileSystem
    The root node for the EnterpriseExtFileSystem configuration service provider. Supported operations: add and get.

  • Persistent

    The EnterpriseExtFileSystem CSP allows an enterprise to read, write, delete and list files in this folder.

    Important note

    There is a limit to the amount of data that can be persisted, which varies depending on how much disk space is available on one of the partitions. This data cap amount (that can be persisted) varies by manufacturer.

    Anything stored in the persistent folder can be backed up before a device is wiped.  If it is backed up, it will be restored when the device boots again. Files written to the Persistent folder will persist over ordinary power cycles.

Note

Items stored in the Persistent folder are "Persistable" over device wipes. The contents are not automatically persisted without action by the IT Admin.

  • NonPersistent
    The EnterpriseExtFileSystem CSP allows an enterprise to read, write, delete and list files in this folder. When an app writes data to the Non-Persistent folder, it accesses that data from the EnterpriseExtFileSystem\NonPersistent node. Files written to the NonPersistent folder will persist over ordinary power cycles.

    When the device is wiped, any data stored in the NonPersistent folder is deleted.

  • <file directory>
    The name of a directory in the device file system. Any <file directory> node can have directories and files as child nodes.

    Use the add command to create a new directory. You cannot use it to add a new directory under a file system root.

    Use the get command to return the list of child node names under <file directory>.

    Use the get command with ?List=Struct to recursively return all child node names, including subdirectory names, under <file directory>.

  • <file name>
    The name of a file in the device file system.

    Supported operations: get.

The following table shows supported characteristics for files and directories.

Property

Description

Name

Supported operations: get.

The get command returns the name of the file or file directory.

Format

For a directory, specify node. For a file, leave blank.

Supported operations: get.

For files, when binary data is sent over XML, it is Base64 encoded. When binary data is sent over wbxml, bin format is used directly.

Type

Supported operations: get.

For the FileSystem root node, the get command returns for the object identifier similar to the following: com.microsoft/windowsmobile/1.1/FileSystemMO

The get command returns blank for all other file directory nodes.

For files, the get command specifies application/octet-stream as the MIME type of the file. The configuration service provider treats all files as a binary data block.

TStamp

Supported operations: get.

The get command returns data about the last time the directory or file was changed. The value is represented by a string that contains a UTC-based, ISO 8601 basic format, complete representation of a date and time value. For example, 20120711T163817Z means July 11, 2012 at 16 hours, 38 minutes, and 17 seconds.

Size

Supported operations: get.

This parameter is not supported in a file directory.

For files, the get command returns the file content size in bytes. For a binary file, the size is for the unencoded file.

msft:SystemAttributes

Supported operations: get and replace.

A custom property created by Microsoft that contains directory attributes.

The get command returns the file or file directory attributes.

The replace command changes the file attributes.

msft:AccessRoles

Not supported.

OMA DM examples

The following example shows how to retrieve a file from the device.

<Get>
    <CmdID>2</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/EnterpriseExtFileSystem/C%3A/data/test/bin/foo.txt</LocURI>
        </Target>
    </Item>
</Get>

The following example shows the file name that is returned in the body of the response syncML code. In this example, the full path of the file on the device is C:/data/test/bin/filename.txt.

<Results>
    <CmdID>3</CmdID>
    <MsgRef>1</MsgRef>
    <CmdRef>2</CmdRef>
    <Item>
        <Source>
            <LocURI>./Vendor/MSFT/EnterpriseExtFileSystem/C%3A/data/test/bin/filename.txt</LocURI>
        </Source>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
            <Type xmlns="syncml:metinf">application/octet-stream</Type>
        </Meta>
        <Data>aGVsbG8gd29ybGQ=</Data>
    </Item>
</Results>

The following example shows how to push a file to the device.

<Add>
   <CmdID>2</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/EnterpriseExtFileSystem/C%3A/data/test/bin/new.txt</LocURI>
      </Target>
      <Meta>
          <Format xmlns="syncml:metinf">b64</Format>
          <Type xmlns="syncml:metinf">application/octet-stream</Type>
      </Meta>
      <Data>aGVsbG8gd29ybGQ=</Data>
   </Item>
</Add>