开发者专区

友善开发平台,创造更多可能

在 DiskStation 上打造更好的套件

Synology 提供友善、自由的开发平台,搭配高度的软硬件整合,无论你是系统整合商或商业软件开发者,皆能轻松地在 DiskStation 上开发理想的套件。DiskStation 可运行目前通用的程序语言,包含 C、C++、Java 及数种常见的脚本语言,你可以使用习惯的语言设计套件,让开发过程更省时、省力。目前 DiskStation 拥有数百万名的使用者,可让套件上架后能有高曝光度及市场潜力。接下来,让我们带你了解为什么 Synology 是更好的 NAS 开发平台,以及该如何开发并通过 DSM 的套件中心,将你精心制作的套件传递到每一位使用者的手上吧!

每月过一百万次的下载量

藉由 DiskStation 高度的软硬件整合与多元的开发平台支持,套件中心每月平均下载量已过一百万次,可确保你的套件能有高曝光率。每位使用者皆可使用套件中心所提供的丰富资源,依照特定需求量身打造自己的 DiskStation,而你开发的套件也将进一步提升产品的可能性。

多元的用户族群

DiskStation 拥有过数百万名用户的广大基础,涵盖了从一般家庭消费者到大型机关或企业等各式各样的使用需求。你可以针对不同层级、不同用途开发各式应用套件,自由地发挥创意。

灵活的开发环境

开发新套件不一定要学习新语言,在 DiskStation 友善灵活的开发环境中,无论你习惯的是 C、C++、Java,或是目前常见的脚本语言,均可选择顺手的程序语言进行开发,将你宝贵的时间集中在开发具创意的套件上。

专业的技术支持

在开发过程中遇到问题、需要咨询时, Synology 的专业团队会尽快提供协助及支持,为你省下大量的除错时间,加速开发的时程。

开发流程

申 请

仅需通过下方申请连接填写信息,我们将会主动与你联络,提供套件评估所需的信息。 立即申请

开 发

开发者工具提供了各种适合你的开发环境和编译程序,关于详细使用方式可以参考开发者指南

验 证

套件开发结束后,即进入轻松的申请和提交步骤。我们会有专业的测试团队协助验证套件的功能性和使用性。

上 架

恭喜你!我们会在 Synology 官方网站上为你的套件新增专属的页面,并将套件上架至每个月平均过一百万次下载的套件中心。

取得工具

Synology 的开发平台提供弹性的工具和详尽的使用指南。在此你可以取得关于套件开发的所有工具和文件。

第三方套件开发指南

此份指南提供详细的开发者工具使用步骤。从套件的架构、编译、语言选择、用户介面到套件上架,你皆可以在开发指南中找到你所需的相关信息。

开发者工具 Toolkits 和 GPL source

跨平台的开发工具让你可以选择多种常见的语言开发工具包。为了更简化开发的流程,系统已内建多数常用的函式库,替你大幅省下自行寻找和编译的时间。

File Station API 指南

此份 API 指南说明如何让套件轻松地存取 File Station 上既有的文件数据。

DiskStation CLI 指南

本指南说明如何使用命令行脚本进行 DiskStation 管理。

SSO API 指南

充分利用 Synology SSO Server 的优势,启动单一登录功能来整合你的网页应用程序。

Audio Station 开发指南

此份指南说明如何开发歌词模块,让安装此模块的用户可从外部搜索歌词。

Surveillance Station WEB API 指南

此份指南不但可帮助你轻松通过 Web API 取得 DiskStation 上的实时视频、开启录像功能,更可嵌入你所开发的套件或网页,让你直接操作该图像设备。

Download Station 开发指南

此份指南说明如何自行增加 BT 的外部搜索资源以及开发免空的下载模块,让你通过 DiskStation 取得存放于免费空间的文件。

SNMP MIB 指南

MIB 使用手册提供相关教学,透过 SNMP 通讯协议监控你的 Synology 产品状态。

Virtual Machine Manager API 指南

本 API 指南提供有关如何使应用程序可以与 Virtual Machine Manager 交互的详细说明和规范。

网页开发人员

简单着手

Welcome to Synology Web Developers! The guide contains command tools which will allow your applications to make use of the resources on Synology DiskStations. Please note that the following page is only available in English. Thank you for your understanding.


Content

  1. PHP Package Developer Note
  2. DiskStation Administration Commands
  3. Synology Error Numbers

1. PHP Package Developer Note

If PHP package is going to involve SDK command tool, package developer will have to set SUID bit and create symbolic link to Synology SDK commands in /usr/syno/bin/ while the package installation. Synology SDK commands tools then will be able to work in PHP scripts.

Example - Command to set SUID bit to Synology SDK tool
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synouser
DiskStation> /bin/ln -s /usr/syno/sbin/synouser /usr/syno/bin/
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synogroup
DiskStation> /bin/ln -s /usr/syno/sbin/synogroup /usr/syno/bin/
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synoshare
DiskStation> /bin/ln -s /usr/syno/sbin/synoshare /usr/syno/bin/
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synonet
DiskStation> /bin/ln -s /usr/syno/sbin/synonet /usr/syno/bin/
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synoservice
DiskStation> /bin/ln -s /usr/syno/sbin/synoservice /usr/syno/bin/
DiskStation> /bin/chmod 4755 /usr/syno/sbin/synowin
DiskStation> /bin/ln -s /usr/syno/sbin/synowin /usr/syno/bin/

2. DiskStation Administration Commands

2.1 synouser -- managing local users

Synopsis

synouser {--help}

synouser {--add} username passwd full name expired email app privilege

synouser {--del} username...

synouser {--rename} old username new username

synouser {--modify} username passwd full name expired email

Description

--add

Create one local user at a time.

--del

Delete existing local user with username. System accounts admin and guest can not be deleted.

--rename

Rename a local user account from old username to new username. The new account name can not be renamed if it is already existed in the DiskStation. System accounts admin and guest can not be renamed.

--modify

Modify the information of local user account username.

The format or limitation of each argument is described in Restrictions. Only the super-user is permitted to run this utility.

Restrictions

username The user name is not case sensitive and limited from 1 to 64 UTF-8 characters, excluding the following symbols: ! " # $ % & ' ( ) * + , / : ; < = > ? @ [ ] \ ^ ` { } | ˜

The first character cannot be a minus sign or a space, and the last character cannot be a space.

passwd The password is case sensitive and limited up to 127 displayable characters, including letters, numbers, signs, and space.

You may choose an empty password or specify your own password, which will be encrypted before being stored in the user database.

full_name The user description can include up to 64 displayable UTF-8 characters. This field may be left empty.

expired This account is expired or not. You should specify 0 (not expired) or 1 (expired).

email The email address of this user. This field may be left empty.

app_privilege Set a decimal number to assign user's privilege to access applications. You may choose 0 to make this user access no application or a number constructed from the sum of the following values:

FTP
Value 0x01
File Station
Value 0x02
Audio Station
Value 0x04
Download Station
Value 0x08
Surveillance Station
Value 0x10

For example, the value of a user's privilege who is able to access FTP, Audio Station and Surveillance Station is 21 (21 = 0x15 = 0x01 + 0x04 + 0x10).

Exit Status

The synouser utility returns 0 when exits successfully, or >0 if any error occurs.

Limitation

When user is created, no welcome email will be sent.

Examples

The following example shows how to change the admin password to "1".

Example - Set admin's password
DiskStation> /usr/syno/sbin/synouser --setpw admin 1

Create user syno with password '1' and full name 'Synology Inc.'. Applications that this user can access are FTP, File Station, Audio Station, Download Station and Surveillance Station.

Example - Create user syno
DiskStation> /usr/syno/sbin/synouser --add syno 1 "Synology Inc." 0
synology@example.com 31

2.2 synogroup -- managing local groups

Synopsis

synogroup {--help}

synogroup {--add} groupname username...

synogroup {--del] groupname...

synogroup {--rename} old groupname new groupname

synogroup {--memberg} groupname username...

Description

--add

Create one local group at a time. The username will be added to the newly created group group-name.

--del

Delete existing local group groupname. System group users can not be deleted.

--rename

Rename a local group from old_groupname to new_groupname. The new group name can not be renamed if it is already existed in the DiskStation. System group users can not be renamed.

--member

Modify the member list of local group groupname to the list of username. System group users can not be renamed.

The format or limitation of each argument is described in Restrictions. Only the super-user is permitted to run this utility.

Restrictions

groupname The group name is not case sensitive and limited from 1 to 15 UTF-8 characters, excluding the following symbols: ! " # $ % & ’ ( ) * + , / : ; < = > ? @ [ ] n ˆ ` { } | ˜

The first character cannot be a minus sign or a space, and the last character cannot be a space.

Exit Status

The synogroup utility returns 0 when exits successfully, or >0 if any error occurs.


2.3 synoshare -- managing share folder information

Synopsis

synoshare {--help}

synoshare {--add} sharename share_desc share_path user_list_na user_list_rw user_list_ro share_browsable adv_privilege

synoshare {--del] {TRUE | FALSE} sharename...

synoshare {--rename} old_sharename new_sharename

synoshare {--setuser} sharename {NA | RO | RW} {+ | - | =} user_list

Description

--add

Create a new share named sharename.

--del

Delete every share named sharename. --del must follow by a boolean value. TRUE, synoshare will delete all the configuration and data of this share. FALSE, it will only delete the configuration of this share, user will still have to remove this directory from file system manually, otherwise DiskStation will restore the share with default privilege next time it restarts.

--rename

Rename a share folder from old_sharename to new_sharename. The new share name can not be renamed if it is already existed in the DiskStation.

--setuser

Modify the list of access privilege to the share, sharename. The third parameter is the user list of access privilege which will be modified.

NA
Modify the list of deny-access.
RO
Modify the list of read-only privilege.
RW
modify the list of read/write privilege.
The fourth parameter is the action to the user list of access privilege.
+ Append the user_list to the original user list of access privilege
- Remove the user_list from the original user list of access privilege
= Replace the original user list of access privilege with the new user_list

The format or limitation of each argument is described in Restrictions. Only the super-user is permitted to run this utility.

Restrictions

sharename The shared folder names are not case sensitive and limited from 1 to 32 UTF-8 characters, excluding the following symbols: ! " # $ % & ’ ( ) * + , / : ; <= > ? @ [ ] n ˆ ` { } | ˜

The first character of a shared folder name cannot be a minus sign or a space, and the last character cannot be a space character either.

Shared folder names in the following are reserved for system use only:

  • global
  • homes
  • home
  • printers
  • .
  • ..
  • surveillance
  • usbbackup
  • usbshare
  • esatashare

share_description The shared folder description is case sensitive and limited up to 64 displayable Unicode characters. It can be an empty string.

share_path It has to be a valid directory to the shared folder. If the path is not existed, synoshare will create it automatically.

user_list Separate each username with a comma, ",". It allows groupname as well, but please append "@" in front of the groupname. It will return an error if either username or groupname does not exist.

Ex. 'user1,user2,@group3'

share_browsable 1, show a shared folder in "My Network Places." 0, hide a shared folder in "My Network Places."

Hiding a shared folder in "My Network Places" does not affect its access right. The access right of the hidden shared folder will remain unchanged. Users who have the proper access rights to the shared folder can still access it by entering "\\server name\shared folder name".

adv privilege Configure the advanced privileges of this shared folder. When accessing this folder with FTP or File Station, the following settings will be applied in addition to the current shared folder privileges.

You should specify this value in decimal. You may choose 0 or a number constructed from the sum of the following values:

Disable directory browsing Value: 0x1

Disable modification of existing files Value: 0x2

Disable file downloading Value: 0x4

adv privilege Configure the advanced privileges of this shared folder. When accessing this folder with FTP or File Station, the following settings will be applied in addition to the current shared folder privileges.

Exit Status

The synoshare utility returns 0 when exits successfully, or >0 if any error occurs.

Examples

Create share 'private' with empty access list.

Example - Create Share 'private'
DiskStation> /usr/syno/sbin/synoshare --add private "Comment" /volume1/
private "" "" "" 1 0

Add user syno and group stuff with read/write permission in share 'private'.

Example - Add User to Share Access Control List
DiskStation> /usr/syno/sbin/synoshare --setuser private RW + syno,@stuff

2.4 synonet -- managing network settings

Synopsis

synonet {--help}

synonet {--dhcp} iface

synonet {--manual} iface ip mask [--dont restart service]

synonet {--set_gateway} gateway

synonet {--set_dns} dns

synonet {--set_mtu} iface MTU

synonet {--set_hostname} hostname [--dont restart service]

Description

--dhcp

Set network adapter, iface, to DHCP.

--manual

Set network adapter, iface, to Manual IP follow by two parameters: ip and mask.

--set_gateway

Manually assign default gateway when all the network adapters are set to Manual IP.

--set_dns

Manually assign DNS server when all the network adapters are set to Manual IP.

--set_mtu

Set the MTU value of the network adapter. The default value is 1500. The MTU will only take affects when the DiskStation is connected to Gigabits network.

--set_hostname

Modify the server name on the DiskStation.

The format or limitation of each argument is described in Restrictions. Only the super-user is permitted to run this utility.

Restrictions

iface It is limited to the following two strings only:

eth0

eth1 (Supported on DiskStation with two LAN ports only)

ip, mask, gateway, dns Those inputs should be in the format of IPv4.

hostname The server name is not case sensitive and limited from 1 to 15 displayable characters, which may consist of letters, numbers, underscores and minus signs. The first character must be a letter.

MTU It is limited to the following values only:

1500

2000

3000

4000

5000

6000

7000

8000

9000

Exit Status

The synonet utility returns 0 when exits successfully, and >0 if any error occurs.

Examples

The below example will show you how to manually assign eth0 with the following information:

IP: 192.168.14.64

Netmask: 255.255.0.0

Default gateway: 192.168.15.254

DNS server: 192.168.252.254

Example - Set DiskStation to Manual IP
DiskStation> /usr/syno/sbin/synonet --manual eth0 192.168.14.64 255.255.0.0
DiskStation> /usr/syno/sbin/synonet --set_gateway 192.168.15.254
DiskStation> /usr/syno/sbin/synonet --set_dns 192.168.252.254

The below example will show you how to set your DiskStation to the new Hostname, cn406e.

Example - Set New Host Name to DiskStation
DiskStation> /usr/syno/sbin/synonet --set_hostname cn406e

2.5 synoservice -- managing setting of serivces

Synopsis

synoservice {--help}

synoservice {--list} [running]

synoservice {--enable | --disable} service...

synoservice {--start | --stop | --restart} service...

synoservice {--keyon | --keyoff} service...

synoservice {--detail} service...

Description

--list

List all the available service. It will only list the current running service if parameter, running, is being specified.

--enable, --disable

Enable or disable the specified service. Not only the specified service will be saved to the current settings once the service has been enabled or disabled, the service will also be started or stopped immediately.

--start, --stop, --restart

Start, stop, or restart the specified service without modifying the settings. Before starting the service, it will check if the service has been enabled yet.

--keyon, --keyoff

Enable or disable the settings of the specified service. The settings will be saved without interrupting the service.

--detail

Display all the information related to the specific service.

Restrictions

service The settings of the following services are available to be set up.

web Web Station

photo Photo Station

netbkp Network backup service

download Download Station

media DLNA service

audio Audio Station

itunes iTunes service

mysql MySQL service

printer Printer service

surveillance Surveillance Station

userhome User Home Service

ftp FTP server

telnet Telnet service

ssh SSH service

nfs NFS service

afp Apple File Protocol service

samba CIFS service

filestation File Station

https HTTPS service

Exit Status

The synoservice utility returns 0 when exits successfully, or >0 if any error occurs.

Examples

To enable ssh service

Example - Enable Service 'ssh'
DiskStation> /usr/syno/sbin/synoservice --enable ssh

To enable ssh in ds_configure.sh when group install. Use --keyon instead of --enable, because the services are not started when ds_configure.sh is called.

Example - Enable Service 'ssh' When Group Install
# ds_configure.sh
# Enable service ssh
/usr/syno/sbin/synoservice --keyon ssh

2.6 synowin -- managing workgroup or ADS domain setting

Synopsis

synowin {--help}

synowin {--joinWorkgroup} workgroup

synowin {--joinDomai} {short_domain_name | full_domain_name} username password [-d dns_ip] [-i kdc_ip] [-n netbios_name] [-f fqdn_name]

Description

--joinWorkgroup

Join workgroup, it will omit the ADS domain.

--joinDomain

Join ADS domain. User will have to provide the account with Domain Administrator's privilege.

Restrictions

workgroup The name of a Workgroup can contain 1 to 15 characters. Invalid characters include: [ ] ; : " < > * + = n / | ? ,

If your workgroup name includes the character '&', users of Mac OS 10.4.4 or earlier versions will not be able to connect to DiskStation via samba.

domain_name If the input domain contains period, ”synology.com”, it will be treated as full domain name. If it is "synology", it will be treated as short domain name.

kdc_ip The DC (Domain Controller) IP.

Specify a DC IP and DiskStation will try to communicate with it. If there is more than one IP, insert a comma in between each of them. Add an asterisk (*) after the last DC IP if you wish, and DiskStation will try to communicate with other DC when all specified ones failed. You will need to add a comma between the asterisk and the last IP.

netbios_name The NetBIOS name of the domain.

fqdn_name The FQDN (DNS name) of the domain.

Exit Status

The synowin utility returns 0 when exits successfully, or >0 if any error occurs.


3. Synology Error Numbers

Table 1: List of Synology Error Numbers

Symbol Value Description
ERR SUCCESS 0x0000 The operation was successful.
ERR NOT ENOUGH MEMORY 0x0100 Insufficient memory allocation.
ERR OUT OF MEMORY 0x0200 The operation ran out of the memory.
ERR ACCESS DENIED 0x0300 Access is denied.
ERR LOCK FAILED 0x0400 Unable to lock a file.
ERR UNLOCK FAILED 0x0500 Unable to unlock a file.
ERR PATH NOT FOUND 0x0600 The path not found.
ERR FILE NOT FOUND 0x0700 The file not found.
ERR FILE EXISTS 0x0800 The file is already existed.
ERR OPEN FAILED 0x0900 Failed to open the file.
ERR READ FAILED 0x0A00 Failed to read data from the specified device.
ERR WRITE FAILED 0x0B00 Failed to write data to the specified device.
ERR CREATE FAILED 0x0C00 Failed to create file or directory.
ERR BAD PARAMETERS 0x0D00 The parameters are invalid.
ERR INVALID SERVERNAME 0x0E00 The server name is invalid.
ERR INVALID DOMAINNAME 0x0F00 The domain name is invalid.
ERR INVALID NETNAME 0x1000 The format of IP address is invalid.
ERR SERVER UNREACHABLE 0x1100 Failed to locate Windows domain controller.
ERR INVALID SHARENAME 0x1200 The share name is invalid.
ERR SHARE EXISTS 0x1300 The share is already existed.
ERR NO SUCH SHARE 0x1400 The share does not exist.
ERR TOO MANY SHARES 0x1500 The maximum number of share has been exceeded.
ERR INVALID GROUPNAME 0x1600 The group name is invalid.
ERR GROUP EXISTS 0x1700 The group name is already existed.
ERR NO SUCH GROUP 0x1800 The group does not exist.
ERR TOO MANY GROUPS 0x1900 The maximum number of group has been exceeded.
ERR INVALID USERNAME 0x1A00 The user name is invalid.
ERR INVALID PASSWORDNAME 0x1B00 The format of the password is invalid.
ERR USER EXISTS 0x1C00 The user exists.
ERR NO SUCH USER 0x1D00 The user does not exist.
ERR WRONG PASSWORD 0x1E00 The password is incorrect.
ERR TOO MANY USERS 0x1F00 The maximum number of user has been exceeded.
ERR KEY NOT FOUND 0x2000 Failed to find the specified keyword.
ERR KEY EXISTS 0x2100 The specified keyword is already existed.
ERR SECTION NOT FOUND 0x2200 Failed to find the section.
ERR SECTION EXISTS 0x2300 The section is already existed.
ERR NOT ENOUGH QUOTA 0x2400 Insufficient space with the user's quota.
ERR NOT ENOUGH VOLUME SPACE 0x2500 Insufficient free space in the volume.
ERR SEEK FAILED 0x2600 Seek operation is failed.
ERR STAT FAILED 0x2700 Stat operation is failed.
ERR RENAME FAILED 0x2800 Failed to rename.
ERR NOT ENOUGH SPACE 0x2900 Insufficient free space in the file system.
ERR OP FAILURE 0x2A00 Failed to execute the specified operation.
ERR DEV UNCONFIG 0x2B00 The device is not ready.
ERR DEV UNMOUNTED 0x2C00 The device is not mounted.
ERR OP UNREGISTERED 0x2D00 The operation is not allowed.
ERR TIMER EXPIRED 0x2E00 The timer has expired.
ERR USER BATCH CONFLICT 0x2F00 Duplicated names found.
ERR READ GEO 0x3000 Failed to read geometry from the specified (disk) device.
ERR USAGE 0x3100 Invalid usage of parameters.
ERR UPDATE OFFSET 0x3200 Illegal offset found while verifying the checksum of patch files.
ERR CHECKSUM 0x3300 Illegal checksum (of a patch file).
ERR OPEN RAWDEVICE 0x3400 Failed to open the raw device.
ERR OPEN OPTFILE 0x3500 Failed to open the configuration file of installation.
ERR READ RAWDEVICE 0x3600 Failed to read data from the raw device.
ERR WRITE RAWDEVICE 0x3700 Failed to write data to the raw device.
ERR BADPATCH 0x3800 Illegal patch file.
ERR REMOVE FAILED 0x3900 Failed to remove file.
ERR MOVE FAILED 0x3A00 Failed to move file.
ERR COPY FAILED 0x3B00 Failed to copy file.
ERR MKDIR FAILED 0x3C00 Failed to create directory.
ERR MMAP FAILED 0x3D00 Failed to map file to memory.
ERR FORMAT ERROR 0x4000 Failed to make file system.
ERR NO BACKUP SET 0x5000 The backup set does not exist.
ERR NO DEST ID 0x5100 The dest ID in local (/etc/synolocalbkp.conf) does not exist.
ERR BACKUP INFO FAIL 0x5200 Fail to get backup info in the shared memory.
ERR BAD DEST PATH 0x5300 The format of local backup destination is invalid.
ERR RM SHM FAIL 0x5400 Failed to remove the shared memory ID.
ERR EXPORT APPLICATION 0x5500 Failed to export application.
ERR IMPORT APPLICATION 0x5600 Failed to import application.
ERR NO VOLUME ID 0x6000 The volume ID cannot be found.
ERR NO DISK ID 0x6100 The disk ID cannot be found.
ERR NOT ENOUGH SD 0x6200 Insufficient hard disks.
ERR SD SIZE NOT ALIGN 0x6300 The selected hard disks do not have the same capacity.
ERR DEVICE BUSY 0x6400 Failed to destroy the volume, because it is occupied by someone.
ERR INVALID SD 0x6500 Invalid SD.
ERR FORMAT FAIL 0x6600 Failed to reformat the disk.
ERR CANNOT REBUILD DISK 0x6700 Failed to rebuild the disk.
ERR BROKEN RAID CONF 0x6800 Incorrect RAID information.
ERR DISK TOO SMALL 0x6900 The capacity of the disk is too small.
ERR CANNOT GET MNTINFO 0x6A00 Failed to get mount information.
ERR BROKEN DISK INFO 0x6B00 Incorrect disk information.
ERR_DISK_IO_FAILED 0x6C00 Disk I/O fails.
ERR_BAD_DISKSECTOR 0x6D00 Bad sectors found.
ERR_UDPD_INVALID_HANDLE 0x7100 The specified handle is invalid.
ERR_UDPD_RUNNING_HANDLE 0x7200 The specified handle is busy.
ERR_UDPD_INVALID_EVENT 0x7300 The specified event is invalid.
ERR_UDPD_INVALID_PARAMETER 0x7400 The specified parameters are illegal.
ERR_UDPD_EXIT_ABNORMAL 0x7500 The daemon exits abnormally.
ERR_UDPD_NOT_ENOUGH_SPACE 0x7600 The specified space is not enough.
ERR_UDPD_TIMEOUT 0x7700 Time out before receiving complete packet.
ERR_UDPD_INIT_FAIL 0x7800 Failed to initialize the specified handle.
ERR_UDPD_SEND_FAIL 0x7900 Failed to send the specified data.
ERR_UDPD_RECV_FAIL 0x7A00 Failed to receive the specified data.
ERR_MANUTIL_PERM 0x7B00 The specified burn-in function is invalid.
ERR_UNKNOWN 0x8000 The error cannot be determined by the function you called.
ERR_SYS_UNKNOWN 0x8100 System encounters an error, but the function you called can't tell you the real error.
ERR_VOLUME_SIZE_TOO_LARGE 0x8200 The specified volume size exceeds the limit.
ERR_VOLUME_NOT_FOUND 0x8300 Failed to find the volume.
ERR_VOLUME_READ_ONLY 0x8400 The volume is read only.
ERR_YP_BIND 0x9000 Ypbind occurs error when you join NIS domain.
ERR_QUOTA_NOT_FOUND 0x9100 The user has not been specified with the volume quota.
ERR_QUOTA_PARAM_INVALID 0x9200 Either the quota file is corrupted, or the command or qouta type is invalid.
ERR_QUOTA_MOUNTING 0x9300 Failed to remount the file system to enable user/group quota.
ERR_QUOTA_QUOTACHECK 0x9400 Failed to execute quotacheck.
ERR_QUOTA_QUOTAON 0x9500 Failed to execute quotaon.
ERR_QUOTA_QUOTAOFF 0x9501 Failed to execute quotaoff.
ERR_FORK_FAIL 0x9600 Failed to fork.
ERR_RAID_ENUM_FAIL 0x9700 Failed to enumerate system RAID devices.
ERR_ENUM_FAIL 0x9800 Failed to enumerate.
ERR_INVALID_PATHNAME 0x9900 Invalid volume path.
ERR_SERVICE_EXISTS 0xA000 The service is already existed.
ERR_SERVICE_NOT_EXISTS 0xA100 The service does not exist.
ERR_NOT_DIRECTORY 0xA200 The path you specified is not a directory.
ERR_DIRECTORY_NOT_EXISTS 0xA300 The directory does not exist.
ERR_SERVICE_NOT_SET 0xA400 The service has not been set.
ERR_IS_DIRECTORY 0xA500 The path you specified is a directory.
ERR_PATH_CONFLICT 0xA600 Source and destination file are identical (same file name or hard link).
ERR_FAT_FILESIZE_TOO_LARGE 0xA700 The file size exceeds 4GB in FAT file system.
ERR_FAT_FILENAME_ILLEGAL 0xA800 The file contains illeagle char in FAT file system.
ERR_USER_CANCEL 0xA900 Action cancelled by user .
ERR_INTERRUPTED 0xAA00 Interrupted by a signal.
ERR_ENCKEY_VERIFY 0xAB00 Share Encryption: Incorrect encryption key.
ERR_ENCKEY_LOST 0xAC00 Share Encryption: Local copy of encryption key lost.
ERR_BDB_FILE_DEPRECATED 0xB000 The BDb file has been deprecated.
ERR_BDB_FILE_BAD_FORMAT 0xB100 The file opened for BDb is incorrectly formatted.
ERR_BDB_GET_FAILED 0xB200 The BDb get failed.
ERR_BDB_SET_FAILED 0xB300 The BDb set failed.
ERR_BDB_DELETE_FAILED 0xB400 The BDb delete failed.
ERR_BDB_CURSOR_FINISH 0xB500 The BDb CursorGet has finished.
ERR_NO_SUCH_FTYPE 0xB600 No scuh fType value.
ERR_RESERVED_GROUP 0xB700 The gid is less than GID_MIN.
ERR_RESERVED_USER 0xB800 The uid is less than UID_MIN.
ERR_LOOKUP_DOMAIN_GROUP 0xB900 wbinfo -g timeout when building domain group db
ERR_LOOKUP_DOMAIN_USER 0xBA00 wbinfo -u timeout when building domain user db
ERR_INTERFACE_EXISTS 0xBB00 The specified interface is already existed.
ERR_NO_SUCH_INTERFACE 0xBC00 The specified interface does not exist.
ERR_TOO_MANY_INTERFACE 0xBD00 The interfaces exceeds the limitation.
ERR_INVALID_PATH 0xBE00 Invalide path.
ERR_SIZE_TOO_SMALL 0xBF00 The capacity of the disk is too small.
ERR_NAME_EXISTS 0xC000 The name is already existed.
ERR_EXCEED_ISCSI_SIZE_IN_VOLUME 0xC100 The reserved size of iSCSI file exceeds the limit.
ERR_FS_NOT_FOUND 0xC200 Failed to find the file system.
ERR_NAME_TOO_LONG 0xC300 File name is too long.