aboutsummaryrefslogtreecommitdiffstats
path: root/tun/wintun/iphlpapi/conversion_windows.go
blob: a19e961eef4ec0ea1c51cc472a7eee514d908ba2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
 */

package iphlpapi

import "golang.org/x/sys/windows"

//sys	convertInterfaceLUIDToGUID(interfaceLUID *uint64, interfaceGUID *windows.GUID) (ret error) = iphlpapi.ConvertInterfaceLuidToGuid
//sys	convertInterfaceAliasToLUID(interfaceAlias *uint16, interfaceLUID *uint64) (ret error) = iphlpapi.ConvertInterfaceAliasToLuid

func InterfaceGUIDFromAlias(alias string) (*windows.GUID, error) {
	var luid uint64
	var guid windows.GUID
	err := convertInterfaceAliasToLUID(windows.StringToUTF16Ptr(alias), &luid)
	if err != nil {
		return nil, err
	}
	err = convertInterfaceLUIDToGUID(&luid, &guid)
	if err != nil {
		return nil, err
	}
	return &guid, nil
}