SDBusRequest (Compact 2013)

3/26/2014

This function asynchronously issues a bus request to a secure digital (SD) device. Upon completion of the bus request, the callback function passed in pCallback is called.

Syntax

SD_API_STATUS SDBusRequest( 
  SD_DEVICE_HANDLE hHandle,
  UCHAR Command,
  ULONG Argument,
  SD_TRANSFER_CLASS TransferClass,
  SD_RESPONSE_TYPE ResponseType,
  ULONG NumBlocks,
  ULONG BlockSize,
  PUCHAR pBuffer,
  PSD_BUS_REQUEST_CALLBACK pCallback,
  DWORD RequestParam,
  PSD_BUS_REQUEST *ppRequest,
  DWORD Flags
);

Parameters:

  • hHandle
    [in] Handle to an SD bus device.
  • Command
    [in] SD command to be sent to the device.
  • Argument
    [in] 32-bit argument specific to the command.
  • TransferClass
    [in] Specifies whether the transaction will read data, (SD_READ), write data (SD_WRITE), or is command-only (SD_COMMAND).
  • ResponseType
    [in] Type of response expected to the command.
  • NumBlocks
    [in] Number of data blocks provided to send or receive data. Can be zero if TransferClass is SD_COMMAND.
  • BlockSize
    [in] Specifies the size of the data blocks provided to send or receive data. Can be zero if TransferClassis SD_COMMAND.
  • pBuffer
    [in, out] Pointer to a buffer for sending or receiving data. Can be NULL if TransferClassis SD_COMMAND.
  • pCallback
    [in] Pointer to a callback routine.
  • RequestParameter
    [in] Parameter to be passed to the callback routine.
  • ppRequest
    [out] Pointer to a pointer to a bus request structure. This structure is allocated by the bus driver and must be freed later with SDFreeBusRequest.
  • Flags
    [in] Optional. Bus request flags. This parameter can be set to SD_AUTO_ISSUE_CMD12 or SD_SDIO_AUTO_IO_ABORT to issue CMD12 or perform I/O abort respectively.

Return Value

A return value of type SD_API_STATUS indicates the success or failure of the transaction initiation. Upon completion of the transaction, further status from the SD device will be contained in the CommandResponsemember of ppRequest.

Remarks

The client device driver must not make any blocking calls within the completion callback routine. The following are blocking function calls:

If a card is set to application command (ACMD) mode using CMD13, the client driver must issue the next command for ACMD mode. The client driver should not call other SD APIs while in ACMD mode as these APIs may send commands to the card that can be misinterpreted as ACMD commands.

Requirements

Header

sdcardddk.h

Library

sdcardlib.lib

See Also

Reference

Secure Digital (SD) Card Driver Functions
SDFreeBusRequest