SD Card Driver on wince5

本文介绍了SD卡的I/O操作函数,包括配置、读取、写入等关键功能,并详细说明了各种操作的具体参数及用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

下面为具体的DISK I/O操作函数和CARD I/O操作函数,详细实现见sdmemdiskio.cpp和sdmemcardio.cpp:

//

// SDDiskIO

//

//  SDMemCardConfig    - Initialise the memcard structure and card itself

DWORD SDMemCardConfig( PSD_MEMCARD_INFO pMemCard );

    //  SDMemRead          - Read data from card into pSG scatter gather buffers

DWORD SDMemRead( PSD_MEMCARD_INFO pMemCard, PSG_REQ pSG );

    //  SDMemWrite         - Write data to card from pSG scatter gather buffers

DWORD SDMemWrite( PSD_MEMCARD_INFO pMemCard, PSG_REQ pSG );

    //  SDMemErase         - Erase a contiguous set of blocks

DWORD SDMemErase( PSD_MEMCARD_INFO pMemCard, PDELETE_SECTOR_INFO pDSI );

    //  SDMemEraseAll      - Erase all blocks

DWORD SDMemEraseAll( PSD_MEMCARD_INFO pMemCard );

//

// SDCardIO

//

    //  SDMemDoBusRequest  - Perform a bus request, returns Windows Status

DWORD SDMemDoBusRequest( PSD_MEMCARD_INFO  pMemcard,

                         UCHAR             Command,

                         DWORD             Argument,

                         SD_TRANSFER_CLASS TransferClass,

                         SD_RESPONSE_TYPE  ResponseType,

                         ULONG             NumBlocks,

                         ULONG             BlockSize,

                         PUCHAR            pBuffer,

                         DWORD             Flags);

    //  SDMemSetBlockLen   - Sets read/write block length for SD memory card

DWORD SDMemSetBlockLen( PSD_MEMCARD_INFO pMemcard,

                        DWORD            BlockLen );

    //  SDMemReadMultiple  - Read multiple 512 byte blocks of data from card

DWORD SDMemReadMultiple( PSD_MEMCARD_INFO pHandle,

                         ULONG            StartBlock,

                         ULONG            NumBlocks,

                         PUCHAR           pBuffer );

    //  SDMemWriteMultiple - Write multiple 512 byte blocks of data to card

DWORD SDMemWriteMultiple( PSD_MEMCARD_INFO pHandle,

                          LONG             StartBlock,

                          LONG             NumBlocks,

                          PUCHAR           pBuffer );

    //  SDMemWriteUsingSingleBlocks - Write using single block writes

DWORD SDMemWriteUsingSingleBlocks( PSD_MEMCARD_INFO pHandle,

                                   LONG             StartBlock,

                                   LONG             NumBlocks,

                                   PUCHAR           pBuffer );

    //  SDMemDoErase - Erase a contiguous set of blocks

DWORD SDMemDoErase( PSD_MEMCARD_INFO pHandle,

                    LONG             StartBlock,

                    LONG             NumBlocks );

DWORD SDAPIStatusToErrorCode( SD_API_STATUS Status );

DWORD SDGetCardStatus(PSD_MEMCARD_INFO pMemCard , SD_CARD_STATUS *pCardStatus);

VOID HandleIoctlPowerSet(PSD_MEMCARD_INFO       pMemCard,

                         PCEDEVICE_POWER_STATE  pDevicePowerState);

VOID InitializePowerManagement(PSD_MEMCARD_INFO pMemCard);

VOID DeinitializePowerManagement(PSD_MEMCARD_INFO pMemCard);

SD_API_STATUS IssueCardSelectDeSelect(PSD_MEMCARD_INFO pMemCard, BOOL Select);

VOID RequestEnd(PSD_MEMCARD_INFO pMemCard);

SD_API_STATUS RequestPrologue(PSD_MEMCARD_INFO pMemCard, DWORD DeviceIoControl);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值