github.com/jaypipes/ghw@v0.21.1/pkg/baseboard/baseboard_windows.go (about)

     1  // Use and distribution licensed under the Apache license version 2.
     2  //
     3  // See the COPYING file in the root project directory for full text.
     4  //
     5  
     6  package baseboard
     7  
     8  import (
     9  	"github.com/yusufpapurcu/wmi"
    10  )
    11  
    12  const wqlBaseboard = "SELECT Manufacturer, SerialNumber, Tag, Version, Product FROM Win32_BaseBoard"
    13  
    14  type win32Baseboard struct {
    15  	Manufacturer *string
    16  	SerialNumber *string
    17  	Tag          *string
    18  	Version      *string
    19  	Product      *string
    20  }
    21  
    22  func (i *Info) load() error {
    23  	// Getting data from WMI
    24  	var win32BaseboardDescriptions []win32Baseboard
    25  	if err := wmi.Query(wqlBaseboard, &win32BaseboardDescriptions); err != nil {
    26  		return err
    27  	}
    28  	if len(win32BaseboardDescriptions) > 0 {
    29  		i.AssetTag = *win32BaseboardDescriptions[0].Tag
    30  		i.SerialNumber = *win32BaseboardDescriptions[0].SerialNumber
    31  		i.Vendor = *win32BaseboardDescriptions[0].Manufacturer
    32  		i.Version = *win32BaseboardDescriptions[0].Version
    33  		i.Product = *win32BaseboardDescriptions[0].Product
    34  	}
    35  
    36  	return nil
    37  }