1# JS API Changes of the DSoftBus Subsystem 2 3The table below lists the APIs changes of the DSoftBus subsystem in OpenHarmony 3.1 Release over OpenHarmony 3.0 LTS. 4 5## API Changes 6 7| Module| Class| Method/Attribute/Enumeration/Constant| Change Type| 8|---|---|---|---| 9| ohos.rpc | Ashmem | readFromAshmem(size: number, offset: number): number[]; | Added| 10| ohos.rpc | Ashmem | writeToAshmem(buf: number[], size: number, offset: number): boolean; | Added| 11| ohos.rpc | Ashmem | setProtection(protectionType: number): boolean; | Added| 12| ohos.rpc | Ashmem | mapReadOnlyAshmem(): boolean; | Added| 13| ohos.rpc | Ashmem | mapReadAndWriteAshmem(): boolean; | Added| 14| ohos.rpc | Ashmem | mapAshmem(mapType: number): boolean; | Added| 15| ohos.rpc | Ashmem | getAshmemSize(): number; | Added| 16| ohos.rpc | Ashmem | unmapAshmem(): void; | Added| 17| ohos.rpc | Ashmem | closeAshmem(): void; | Added| 18| ohos.rpc | Ashmem | static createAshmemFromExisting(ashmem: Ashmem): Ashmem; | Added| 19| ohos.rpc | Ashmem | static createAshmem(name: string, size: number): Ashmem; | Added| 20| ohos.rpc | Ashmem | PROT_WRITE = 2; | Added| 21| ohos.rpc | Ashmem | PROT_READ = 1; | Added| 22| ohos.rpc | Ashmem | PROT_NONE = 0; | Added| 23| ohos.rpc | Ashmem | PROT_EXEC = 4; | Added| 24| ohos.rpc | IPCSkeleton | static getCallingTokenId(): number; | Added| 25| ohos.rpc | SendRequestResult | reply: MessageParcel; | Added| 26| ohos.rpc | SendRequestResult | data: MessageParcel; | Added| 27| ohos.rpc | SendRequestResult | code: number; | Added| 28| ohos.rpc | SendRequestResult | errCode: number; | Added| 29| ohos.rpc | MessageParcel | readRawData(size: number): number[]; | Added| 30| ohos.rpc | MessageParcel | writeRawData(rawData: number[], size: number): boolean; | Added| 31| ohos.rpc | MessageParcel | getRawDataCapacity(): number; | Added| 32| ohos.rpc | MessageParcel | readAshmem(): Ashmem; | Added| 33| ohos.rpc | MessageParcel | writeAshmem(ashmem: Ashmem): boolean; | Added| 34| ohos.rpc | MessageParcel | readFileDescriptor(): number; | Added| 35| ohos.rpc | MessageParcel | writeFileDescriptor(fd: number): boolean; | Added| 36| ohos.rpc | MessageParcel | containFileDescriptors(): boolean; | Added| 37| ohos.rpc | MessageParcel | static dupFileDescriptor(fd: number) :number; | Added| 38| ohos.rpc | MessageParcel | static closeFileDescriptor(fd: number): void; | Added| 39| ohos.rpc | MessageParcel | readRemoteObjectArray(objects: IRemoteObject[]): void;<br>readRemoteObjectArray(): IRemoteObject[]; | Added| 40| ohos.rpc | MessageParcel | readSequenceableArray(sequenceableArray: Sequenceable[]): void; | Added| 41| ohos.rpc | MessageParcel | writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean; | Added| 42| ohos.rpc | MessageParcel | readException(): void; | Added| 43| ohos.rpc | MessageParcel | writeNoException(): void; | Added| 44