func()

in providers/windows/device_windows.go [171:193]


func (m testingDeviceProvider) QueryDosDevice(nameW *uint16, buf *uint16, length uint32) (uint32, error) {
	drive := byte(*nameW)
	if byte(*ptrOffset(nameW, 1)) != ':' {
		return 0, errors.New("not a drive")
	}
	if *ptrOffset(nameW, 2) != 0 {
		return 0, errors.New("drive not terminated")
	}
	path, ok := m[drive]
	if !ok {
		return 0, fmt.Errorf("drive %c not found", drive)
	}
	n := uint32(len(path))
	if n+2 > length {
		return 0, windows.ERROR_INSUFFICIENT_BUFFER
	}
	for i := uint32(0); i < n; i++ {
		*ptrOffset(buf, i) = uint16(path[i])
	}
	*ptrOffset(buf, n) = 0
	*ptrOffset(buf, n+1) = 0
	return n + 2, nil
}