aboutsummaryrefslogtreecommitdiffstats
path: root/setupapi/types_windows.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--setupapi/types_windows.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/setupapi/types_windows.go b/setupapi/types_windows.go
index 2dfcb70..db2f8ce 100644
--- a/setupapi/types_windows.go
+++ b/setupapi/types_windows.go
@@ -6,6 +6,7 @@
package setupapi
import (
+ "strings"
"syscall"
"unsafe"
@@ -447,6 +448,21 @@ type DrvInfoDetailData struct {
CompatIDs []string
}
+// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list.
+func (DriverInfoDetailData DrvInfoDetailData) IsCompatible(hwid string) bool {
+ hwidLC := strings.ToLower(hwid)
+ if strings.ToLower(DriverInfoDetailData.HardwareID) == hwidLC {
+ return true
+ }
+ for i := range DriverInfoDetailData.CompatIDs {
+ if strings.ToLower(DriverInfoDetailData.CompatIDs[i]) == hwidLC {
+ return true
+ }
+ }
+
+ return false
+}
+
// DICD flags control SetupDiCreateDeviceInfo
type DICD uint32