SW 개발

winCE / 네트워크드라이버 / NDIS / NDIS Power 변화시키기 예제소스

. . . 2010. 1. 14. 01:31
반응형

Xeno's Study Blog (http://XenoStudy.tistory.com)
- 글쓴이 : xeno
- 출처 : 나 , MSDN , 인터넷자료..
- 기타사항 : EVC4 코딩 / winCE5.0 확인  / windows Mobile 5 확인

무선랜 드라이버 Power State 강제변환

SetDevicePower() 를 이용한 Device 의 PowerStatus 변화는 단순히 Prefix 를 인자로 넘기는 경우가 많았다.
하지만 네트워크 드라이버의 경우는 아래와 같은 방법으로 NDIS 에 물린 네트워크드라이버의 PowerStatus 가 원하는 데로 변화함을 확인했음.ㅋㅋ

DWORD SetWLANPowerState(BOOL enable)
{
    WCHAR szNDISAdapterName[257];
    int n;
    memset( szNDISAdapterName, 0x00, sizeof(szNDISAdapterName) );
    n = _sntprintf(szNDISAdapterName, MAX_PATH-1, _T("%s\\%s"), 
                   PMCLASS_NDIS_MINIPORT, _T("WLAN_NAME"));
	// 이때 _T("WLAN_NAME") 에는 실제 디바이스 이름을 적는다.
    
    if( enable ) 
    {
        if(ERROR_SUCCESS != 
           SetDevicePower(szNDISAdapterName, POWER_NAME, PwrDeviceUnspecified))
           return FALSE;
        else
            ; // 성공..
    }
    else
    {
        if(ERROR_SUCCESS != 
           SetDevicePower(szNDISAdapterName, POWER_NAME, D4))
           return FALSE;
        else
            ; // 성공..
    }
    return TRUE;
}

오류나 틀린점은 리플로 달아주세요..

반응형