Jump to main content

##

# 1.1.3.4.16 DRV_MEMORY_CommandStatusGet Function

## C

    DRV_MEMORY_COMMAND_STATUS DRV_MEMORY_CommandStatusGet
    (
        const DRV_HANDLE handle,
        const DRV_MEMORY_COMMAND_HANDLE commandHandle
    );

## Summary

Gets the current status of the command.

## Description

This routine gets the current status of the buffer. The application must use this routine where the status of a scheduled buffer needs to polled on.

The function may return DRV_MEMORY_COMMAND_HANDLE_INVALID in a case where the buffer handle has expired. A buffer handle expires when the internal buffer object is re-assigned to another erase or write request. It is recommended that this function be called regularly in order to track the buffer status correctly.

The application can alternatively register an event handler to receive write or erase operation completion events.

## Preconditions

DRV_MEMORY_Open() must have been called to obtain a valid opened device handle.

## Parameters

Param | Description
--- | ---
handle | A valid open-instance handle, returned from the driver's open function
commandHandle | Pointer to an argument that will contain the command handle

## Returns

- DRV_MEMORY_COMMAND_COMPLETED

  - If the transfer request is completed

- DRV_MEMORY_COMMAND_QUEUED

  - If the command is Queued and waiting to be processed.

- DRV_MEMORY_COMMAND_IN_PROGRESS

  - If the current transfer request is still being processed

- DRV_MEMORY_COMMAND_ERROR_UNKNOWN

  - If the handle is invalid
  - If the status read request fails

## Example

    // memoryHandle is the handle returned by the DRV_MEMORY_Open function.
    // commandHandle is the handle returned by any read/write/erase block operation.

    if (DRV_MEMORY_COMMAND_COMPLETED == DRV_MEMORY_CommandStatusGet(memoryHandle, commandHandle))
    {
        // Operation Done
    }

## Remarks

Used in Async mode of operation.