WinCE7中的处理程序

时间:2014-01-09 06:15:52

标签: windows-ce handler sd-card

我是新手。我在WinCE7 SDHC驱动程序中工作。在初始化期间,某些函数被分配给结构变量作为处理程序。这些功能会自动调用。也就是说,我无法找出哪个函数调用它。

我提到this stackoverflow link。不过,我想知道,如何跟踪,何时调用哪个处理程序。请指导我。

typedef struct _SDCARD_HC_CONTEXT {
    DWORD                       dwVersion;          // version of context structure

    WCHAR                       HostControllerName[SD_HC_MAX_NAME_LENGTH];  // friendly name
    CRITICAL_SECTION            HCCritSection;      // host controller critical section
    PSD_BUS_REQUEST_HANDLER     pBusRequestHandler; // bus request handler
    PSD_GET_SET_SLOT_OPTION     pSlotOptionHandler; // slot option handler
    PSD_CANCEL_REQUEST_HANDLER  pCancelIOHandler;   // cancel request handler
    PSD_INITIALIZE_CONTROLLER   pInitHandler;       // init handler       
    PSD_DEINITIALIZE_CONTROLLER pDeinitHandler;     // deinit handler
    PVOID                       pHCSpecificContext; // host controller specific context
    PSD_CHANGE_CARD_POWER       pChangeCardPowerHandler; // Pointer to power control handler
} SDCARD_HC_CONTEXT, *PSDCARD_HC_CONTEXT;

这是分配功能的结构。

1 个答案:

答案 0 :(得分:2)

在这种特殊情况下(你的SDHC driver),这些是SDBus driver将使用的函数指针。您可以在路径中查看SDBus driver源代码:

%WINCE700%\public\COMMON\oak\drivers\sdcard\sdbus

您可以找到一些行,例如

SD_API_STATUS   BusRequestHandler(DWORD dwSlot, PSD_BUS_REQUEST pSdBusRequest)  {
        return pBusRequestHandler((PSDCARD_HC_CONTEXT)this,dwSlot,pSdBusRequest);

这是您在SDHC driver源代码中指定并由SDBus driver源代码使用的函数指针。