in providers/windows/device_windows.go [93:108]
func (mapper *deviceMapper) getDevice(driveLetter byte) (string, error) {
driveBuf := [3]uint16{uint16(driveLetter), ':', 0}
for bufSize := 64; bufSize <= 1024; bufSize *= 2 {
deviceBuf := make([]uint16, bufSize)
n, err := mapper.QueryDosDevice(&driveBuf[0], &deviceBuf[0], uint32(len(deviceBuf)))
if err != nil {
if err == windows.ERROR_INSUFFICIENT_BUFFER {
continue
}
return "", err
}
return windows.UTF16ToString(deviceBuf[:n]), nil
}
return "", windows.ERROR_INSUFFICIENT_BUFFER
}