Example #1
0
        private IEnumerable <HWInfoSensorSource> ReadSensorSources()
        {
            for (uint index = 0; index < _sharedMemory.dwNumSensorElements; ++index)
            {
                using (MemoryMappedViewStream viewStream = _memoryMappedFile.CreateViewStream(_sharedMemory.dwOffsetOfSensorSection + index * _sharedMemory.dwSizeOfSensorElement, _sharedMemory.dwSizeOfSensorElement, MemoryMappedFileAccess.Read))
                {
                    byte[] buffer = new byte[(int)_sharedMemory.dwSizeOfSensorElement];
                    viewStream.Read(buffer, 0, (int)_sharedMemory.dwSizeOfSensorElement);
                    GCHandle gcHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned);

                    _HWiNFO_SENSOR structure = (_HWiNFO_SENSOR)Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof(_HWiNFO_SENSOR));

                    gcHandle.Free();

                    yield return(new HWInfoSensorSource(structure));
                }
            }
        }
Example #2
0
 public void ReadSensorNames()
 {
     for (uint index = 0; index < HWiNFOMemory.dwNumSensorElements; ++index)
     {
         using (MemoryMappedViewStream viewStream = mmf.CreateViewStream(HWiNFOMemory.dwOffsetOfSensorSection + index * HWiNFOMemory.dwSizeOfSensorElement, HWiNFOMemory.dwSizeOfSensorElement, MemoryMappedFileAccess.Read))
         {
             byte[] buffer = new byte[(int)HWiNFOMemory.dwSizeOfSensorElement];
             viewStream.Read(buffer, 0, (int)HWiNFOMemory.dwSizeOfSensorElement);
             GCHandle       gcHandle  = GCHandle.Alloc(buffer, GCHandleType.Pinned);
             _HWiNFO_SENSOR structure = (_HWiNFO_SENSOR)Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof(_HWiNFO_SENSOR));
             gcHandle.Free();
             JsonObj obj = new JsonObj
             {
                 szSensorNameOrig = structure.szSensorNameOrig,
                 szSensorNameUser = structure.szSensorNameUser,
                 sensors          = new List <_HWiNFO_ELEMENT>()
             };
             data.Add(obj);
         }
     }
     ReadSensors();
 }
Example #3
0
 public HWInfoSensorSource(_HWiNFO_SENSOR _sensor) => Sensor = _sensor;