diff options
author | Simon Rozman <simon@rozman.si> | 2019-02-06 20:18:44 +0100 |
---|---|---|
committer | Simon Rozman <simon@rozman.si> | 2019-02-06 20:18:44 +0100 |
commit | 73df1c08719960c7002e521ce7466d1cc9e93ca6 (patch) | |
tree | 488e7f9c619b0ad3af0aeae849706580b4c99203 /setupapi/types_windows.go | |
parent | setupapi: Add SP_DRVINFO_DATA.IsNewer() method to simplify comparison (diff) | |
download | wireguard-go-73df1c08719960c7002e521ce7466d1cc9e93ca6.tar.xz wireguard-go-73df1c08719960c7002e521ce7466d1cc9e93ca6.zip |
setupapi: Add DrvInfoDetailData.IsCompatible() to simplify HID detection
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to '')
-rw-r--r-- | setupapi/types_windows.go | 16 |
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 |