我是新手。我在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;
这是分配功能的结构。
答案 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
源代码使用的函数指针。