
# IFlashWriter interface

*No description yet.*

```csharp
public interface IFlashWriter : IRemoteExecuteBaseDriver
```

**Namespace:** SCH · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IRemoteExecuteBaseDriver](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md)

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [AbortCurrentProcess](#abortcurrentprocess) | `int` |  |
| [AddFlashMemorySpace](#addflashmemoryspace) | `int` |  |
| [BeginTransaction](#begintransaction) | `int` |  |
| [BlankCheckSectors](#blankchecksectors) | `int` |  |
| [ClearAllFlashMemorySpaces](#clearallflashmemoryspaces) | `void` |  |
| [CompareWithFlash](#comparewithflash) | `int` |  |
| [EndTransation](#endtransation) | `int` |  |
| [EraseAddressRange](#eraseaddressrange) | `int` |  |
| [EraseFlash](#eraseflash) | `int` |  |
| [EraseSectorRange](#erasesectorrange) | `int` |  |
| [GetDefaultFlashWidth](#getdefaultflashwidth) | `int` |  |
| [GetFlashAddressFromSector](#getflashaddressfromsector) | `uint` |  |
| [GetFlashMemorySpaceCount](#getflashmemoryspacecount) | `int` |  |
| [GetFlashMemorySpaceDescriptor](#getflashmemoryspacedescriptor) | `void` |  |
| [GetFlashSectorFromAddress](#getflashsectorfromaddress) | `uint` |  |
| [GetSupportedDevicesList](#getsupporteddeviceslist) | [IStrings](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IStrings.md) |  |
| [IsFlashMemorySpace](#isflashmemoryspace) | `bool` |  |
| [IsFlashWidthSupported](#isflashwidthsupported) | `bool` |  |
| [SetCallbackInterface](#setcallbackinterface) | `int` |  |
| [SupportsAction](#supportsaction) | `bool` |  |
| [WriteFlash](#writeflash) | `int` |  |

### AbortCurrentProcess

*No description yet.*

```csharp
int AbortCurrentProcess();
```

**Returns:** `int`

### AddFlashMemorySpace

*No description yet.*

```csharp
int AddFlashMemorySpace(uint argGlobalMemorySpaceIndex, uint argStartAddress, uint argEndAddress, uint argWidthInBits);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argGlobalMemorySpaceIndex` | `uint` | value |
| `argStartAddress` | `uint` | value |
| `argEndAddress` | `uint` | value |
| `argWidthInBits` | `uint` | value |

**Returns:** `int`

### BeginTransaction

*No description yet.*

```csharp
int BeginTransaction();
```

**Returns:** `int`

### BlankCheckSectors

*No description yet.*

```csharp
int BlankCheckSectors(uint argFlashMemorySpaceIndex, uint argStartSector, uint argEndSector);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argStartSector` | `uint` | value |
| `argEndSector` | `uint` | value |

**Returns:** `int`

### ClearAllFlashMemorySpaces

*No description yet.*

```csharp
void ClearAllFlashMemorySpaces();
```

**Returns:** nothing (`void`)

### CompareWithFlash

*No description yet.*

```csharp
int CompareWithFlash(uint argFlashMemorySpaceIndex, IDataChunkImageInterface argDataImageInterface, uint argFlashAddress, uint argCompareByteCount, bool argEnableFilterFunction);
int CompareWithFlash(uint argFlashMemorySpaceIndex, object argDataImageInterface, uint argFlashAddress, uint argCompareByteCount, bool argEnableFilterFunction);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argDataImageInterface` | [IDataChunkImageInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDataChunkImageInterface.md) | value |
| `argFlashAddress` | `uint` | value |
| `argCompareByteCount` | `uint` | value |
| `argEnableFilterFunction` | `bool` | value |

**Returns:** `int`

The first overload is an extension method of `IFlashWriterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### EndTransation

*No description yet.*

```csharp
int EndTransation();
```

**Returns:** `int`

### EraseAddressRange

*No description yet.*

```csharp
int EraseAddressRange(uint argFlashMemorySpaceIndex, uint argStartAddress, uint argEndAddress, bool argPreserveUnwrittenData);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argStartAddress` | `uint` | value |
| `argEndAddress` | `uint` | value |
| `argPreserveUnwrittenData` | `bool` | value |

**Returns:** `int`

### EraseFlash

*No description yet.*

```csharp
int EraseFlash(uint argFlashMemorySpaceIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |

**Returns:** `int`

### EraseSectorRange

*No description yet.*

```csharp
int EraseSectorRange(uint argFlashMemorySpaceIndex, uint argStartSector, uint argEndSector);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argStartSector` | `uint` | value |
| `argEndSector` | `uint` | value |

**Returns:** `int`

### GetDefaultFlashWidth

*No description yet.*

```csharp
int GetDefaultFlashWidth();
```

**Returns:** `int`

### GetFlashAddressFromSector

*No description yet.*

```csharp
uint GetFlashAddressFromSector(uint argFlashMemorySpaceIndex, uint argSectorNumber);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argSectorNumber` | `uint` | value |

**Returns:** `uint`

### GetFlashMemorySpaceCount

*No description yet.*

```csharp
int GetFlashMemorySpaceCount();
```

**Returns:** `int`

### GetFlashMemorySpaceDescriptor

*No description yet.*

```csharp
void GetFlashMemorySpaceDescriptor(uint argFlashMemorySpaceIndex, out uint argglobalMemorySpaceIndex, out uint argstartAddress, out uint argendAddress, out uint argwidthInBits);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argglobalMemorySpaceIndex` | `uint` | out |
| `argstartAddress` | `uint` | out |
| `argendAddress` | `uint` | out |
| `argwidthInBits` | `uint` | out |

**Returns:** nothing (`void`)

### GetFlashSectorFromAddress

*No description yet.*

```csharp
uint GetFlashSectorFromAddress(uint argFlashMemorySpaceIndex, uint argFlashAddress);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argFlashAddress` | `uint` | value |

**Returns:** `uint`

### GetSupportedDevicesList

*No description yet.*

```csharp
IStrings GetSupportedDevicesList();
```

**Returns:** [IStrings](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IStrings.md)

Extension method of `IFlashWriterHelper` (`using SCH;`).

### IsFlashMemorySpace

*No description yet.*

```csharp
bool IsFlashMemorySpace(uint argMemorySpaceIndex, uint argWriteAddress);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMemorySpaceIndex` | `uint` | value |
| `argWriteAddress` | `uint` | value |

**Returns:** `bool`

### IsFlashWidthSupported

*No description yet.*

```csharp
bool IsFlashWidthSupported(int argFlashWidth);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashWidth` | `int` | value |

**Returns:** `bool`

### SetCallbackInterface

*No description yet.*

```csharp
int SetCallbackInterface(IFlashWriterCallback argCallBackInterface);
int SetCallbackInterface(object argCallBackInterface);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argCallBackInterface` | [IFlashWriterCallback](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFlashWriterCallback.md) | value |

**Returns:** `int`

The first overload is an extension method of `IFlashWriterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### SupportsAction

*No description yet.*

```csharp
bool SupportsAction(uint argnAction);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argnAction` | `uint` | value |

**Returns:** `bool`

### WriteFlash

*No description yet.*

```csharp
int WriteFlash(uint argFlashMemorySpaceIndex, IDataChunkImageInterface argDataImageInterface, bool argEnableFilterFunction, bool argPreserveUnwrittenData, bool argResetDevice, bool argVerifyWrite);
int WriteFlash(uint argFlashMemorySpaceIndex, object argDataImageInterface, bool argEnableFilterFunction, bool argPreserveUnwrittenData, bool argResetDevice, bool argVerifyWrite);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFlashMemorySpaceIndex` | `uint` | value |
| `argDataImageInterface` | [IDataChunkImageInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDataChunkImageInterface.md) | value |
| `argEnableFilterFunction` | `bool` | value |
| `argPreserveUnwrittenData` | `bool` | value |
| `argResetDevice` | `bool` | value |
| `argVerifyWrite` | `bool` | value |

**Returns:** `int`

The first overload is an extension method of `IFlashWriterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

## Inherited members

- From [IRemoteExecuteBaseDriver](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md): [GetInternalAbort](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalabort), [GetInternalIsDriverInstalled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalisdriverinstalled), [GetInternalIsDriverLoaded](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalisdriverloaded), [GetInternalIsEnabled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalisenabled), [GetInternalIsInitialized](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalisinitialized), [GetInternalPreserveState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#getinternalpreservestate), [RemoteDriverBaseAddress](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverbaseaddress), [RemoteDriverDataBaseAddress](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverdatabaseaddress), [RemoteDriverDeviceName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverdevicename), [RemoteDriverDeviceTitle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverdevicetitle), [RemoteDriverFileName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverfilename), [RemoteDriverMainEntryPoint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedrivermainentrypoint), [RemoteDriverParamBaseAddress](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedriverparambaseaddress), [RemoteDriverVendorName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IRemoteExecuteBaseDriver.md#remotedrivervendorname)

## Returned by

[IFlashWriters.GetFlashWriter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFlashWriters.md#getflashwriter), [IFlashWriters.GetSelectedFlashWriter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFlashWriters.md#getselectedflashwriter)

## Accepted by

[IFlashWriters.AddFlashWriter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFlashWriters.md#addflashwriter), [IFlashWriters.SelectFlashWriter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFlashWriters.md#selectflashwriter)
