⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 busacc.hpp

📁 PXA27x/ MainstionIII平台下SDIO驱动完整代码 Windows CE 6.0嵌入式操作系统
💻 HPP
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//

// Copyright (c) 2002 BSQUARE Corporation.  All rights reserved.
// DO NOT REMOVE --- BEGIN EXTERNALLY DEVELOPED SOURCE CODE ID 40973--- DO NOT REMOVE

// SD Bus Access 


#pragma once

#include <SDCardDDK.h>
typedef PSD_BUS_REQUEST HBUS_REQUEST;

class SDBusAccess : public SDCARD_API_FUNCTIONS {
private:
    HANDLE m_hBusAccess;
    HANDLE m_hCallback;
public:
    SDBusAccess(LPCTSTR lpActivePath);
    ~SDBusAccess();
    BOOL    Init();
    HANDLE  GetCallbackHandle() { return m_hCallback; };
    HANDLE  GetBusAccessHandle() { return m_hBusAccess; };
    BOOL    CallSDBusDriver (__in  DWORD dwIoControlCode, __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, __in DWORD nInBufferSize, __out_bcount(nOutBufferSize) LPVOID lpOutBuffer,__in DWORD nOutBufferSize, __out LPDWORD lpBytesReturned,__in_opt LPOVERLAPPED lpOverlapped);
private:
    static BOOL WINAPI SDBusCallback(
        DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped
    );

    
    static SD_API_STATUS SDRegisterClient__X(SD_DEVICE_HANDLE                 hDevice, 
                                  PVOID                            pDeviceContext, 
                                  PSDCARD_CLIENT_REGISTRATION_INFO pInfo);

    static SD_API_STATUS SDSynchronousBusRequest__X(SD_DEVICE_HANDLE   hDevice, 
                                         UCHAR                 Command,
                                         DWORD                 Argument,
                                         SD_TRANSFER_CLASS     TransferClass,
                                         SD_RESPONSE_TYPE      ResponseType,
                                         PSD_COMMAND_RESPONSE  pResponse,
                                         ULONG                 NumBlocks,
                                         ULONG                 BlockSize,
                                         PUCHAR                pBuffer,
                                         DWORD                 Flags);

    static SD_API_STATUS SDBusRequest__X(SD_DEVICE_HANDLE         hHandle,
                              UCHAR                    Command,
                              DWORD                    Argument,
                              SD_TRANSFER_CLASS        TransferClass,
                              SD_RESPONSE_TYPE         ResponseType,
                              ULONG                    NumBlocks,
                              ULONG                    BlockSize,
                              PUCHAR                   pBuffer,
                              PSD_BUS_REQUEST_CALLBACK pCallback,
                              DWORD                    RequestParam,
                              HBUS_REQUEST            *phRequest,
                              DWORD                    Flags);

    static BOOLEAN SDCancelBusRequest__X(HBUS_REQUEST  HhRequest);


    static VOID SDFreeBusRequest__X(HBUS_REQUEST  hRequest);

    static SD_API_STATUS SDCardInfoQuery__X( SD_DEVICE_HANDLE hHandle,
                                 SD_INFO_TYPE     InfoType,
                                 PVOID            pCardInfo,
                                 ULONG            StructureSize);

    static SD_API_STATUS SDReadWriteRegistersDirect__X(SD_DEVICE_HANDLE       hDevice,
                                            SD_IO_TRANSFER_TYPE    ReadWrite,
                                            UCHAR                  Function,
                                            DWORD                  Address,
                                            BOOLEAN                ReadAfterWrite,
                                            PUCHAR                 pBuffer,
                                            ULONG                  Length);

    static SD_API_STATUS SDGetTuple__X(SD_DEVICE_HANDLE hDevice,
                            UCHAR            TupleCode,
                            PUCHAR           pBuffer,
                            PULONG           pBufferSize,
                            BOOL             CommonCIS);


    static SD_API_STATUS SDIOConnectInterrupt__X(SD_DEVICE_HANDLE         hDevice, 
                                      PSD_INTERRUPT_CALLBACK   pIsrFunction);


    static VOID SDIODisconnectInterrupt__X(SD_DEVICE_HANDLE hDevice);


    static SD_API_STATUS SDSetCardFeature__X(SD_DEVICE_HANDLE     hDevice,
                                  SD_SET_FEATURE_TYPE  CardFeature,
                                  PVOID                pCardInfo,
                                  ULONG                StructureSize);
};

extern SDBusAccess * g_pSDBusAccess ;
SDBusAccess * CreateSDBusAcess(LPCTSTR lpActivePath);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -