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
}