SW 개발

winCE > 네트워크 > NDIS > 현재 연결된 AP의 RSSI 얻오기

. . . 2009. 1. 15. 15:12
반응형
  • 마크다운변환 : 20190905

  • 기타사항 : winCE5 / EVC 테스트완료, 오류사항이나 틀린점은 댓글로 지적해주세여

  • wzcsapi 로도 RSSI값을 얻어 올수있지만, ndis 로 얻어오는 방법도있다.

PUCHAR buffer = NULL; 
NDIS_802_11_RSSI rssi,rssiAbs; 
PNDISUIO_QUERY_OID rssiOid; 
unsigned int lenReq; 
DWORD dwReturnedBytes = 0; 

buffer = (PUCHAR) malloc( sizeof(NDISUIO_QUERY_OID) + sizeof(ULONG) ); 
memset( buffer, 0, sizeof(NDISUIO_QUERY_OID) + sizeof(ULONG) ); 
lenReq = sizeof(NDISUIO_QUERY_OID) + sizeof(ULONG); 
rssiOid = (NDISUIO_QUERY_OID *)buffer; 

//Send OID_802_11_RSSI Oid to the driver 
rssiOid->Oid = OID_802_11_RSSI; 
rssiOid->ptcDeviceName = WLAN_ADAPTERNAME; 

// Pass the IOCTL to the device 
if (!DeviceIoControl(g_hNdisUio, IOCTL_NDISUIO_QUERY_OID_VALUE, buffer, 
                     sizeof(NDISUIO_QUERY_OID), buffer, lenReq, 
                     &dwReturnedBytes, NULL)) { 

    return 0; 
} 

rssi=(*(NDIS_802_11_RSSI *)(rssiOid->Data)); 
return rssi;

이때 받은 RSSI값은 int 형으로 받으니 제대로 나왔다.

반응형