반응형
- 마크다운변환 : 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 형으로 받으니 제대로 나왔다.
반응형