|
/**********************************/
PUBLIC DWORD DSK_Init(DWORD dwContext)
{
//PDISK pDisk;
DWORD IDThread;
//HMODULE hmCore;
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~01")));
//while(1); //LTH modify
if(PBT_InitializeAddresses()==FALSE )
return 0;
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~02")));
PBT_EnableInterrupt();
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~03")));
//从OAL请求一个SYSINTR值
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_PwrButtonIrq, sizeof(UINT32), &g_PwrButtonSysIntr, sizeof(UINT32), NULL))
{
RETAILMSG(1, (TEXT("ERROR: PwrButton: Failed to request sysintr value for sw_reset button interrupt.\r\n")));
return(0);
}
RETAILMSG(1,(TEXT("INFO: PwrButton: Mapped Irq 0x%x to SysIntr 0x%x.\r\n"), g_PwrButtonIrq, g_PwrButtonSysIntr));
//RETAILMSG(1,(TEXT("PwrButton Initialize ...")));
gPwrButtonIntrThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) PBT_IntrThread, 0, 0, &IDThread);
RETAILMSG(1, (TEXT(":::PwrButton PBT_IntrThread ID = %x\r\n"), IDThread));
if (gPwrButtonIntrThread == NULL)
{
RETAILMSG(1, (TEXT(":::PwrButton CreateThread() Fail\r\n")));
KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&g_PwrButtonSysIntr,sizeof(UINT32),NULL,0,NULL);
return 0;
}
gReadKeyEvent[0] = CreateEvent(NULL,FALSE,FALSE,NULL);
gReadKeyEvent[1] = CreateEvent(NULL,FALSE,FALSE,NULL);
RETAILMSG(1,(TEXT(":::pwrButton Initialize OK!!!!! ...")));
return TRUE;
}
|
|