def _win32_read_junction(path):
if not jwfs.is_reparse_point(path):<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>handle = jwfs.api.CreateFile(<EOL>path, <NUM_LIT:0>, <NUM_LIT:0>, None, jwfs.api.OPEN_EXISTING,<EOL>jwfs.api.FILE_FLAG_OPEN_REPARSE_POINT |<EOL>jwfs.api.FILE_FLAG_BACKUP_SEMANTICS,<EOL>None)<EOL>if handle == jwfs.api.INVALID_HANDLE_VALUE:<EOL><INDENT>raise WindowsError()<EOL><DEDENT>res = jwfs.reparse.DeviceIoControl(<EOL>handle, jwfs.api.FSCTL_GET_REPARSE_POINT, None, <NUM_LIT>)<EOL>bytes = jwfs.create_string_buffer(res)<EOL>p_rdb = jwfs.cast(bytes, jwfs.POINTER(jwfs.api.REPARSE_DATA_BUFFER))<EOL>rdb = p_rdb.contents<EOL>if rdb.tag not in [<NUM_LIT>, jwfs.api.IO_REPARSE_TAG_SYMLINK]:<EOL><INDENT>raise RuntimeError(<EOL>"<STR_LIT>" % rdb.tag)<EOL><DEDENT>jwfs.handle_nonzero_success(jwfs.api.CloseHandle(handle))<EOL>subname = rdb.get_substitute_name()<EOL>if subname.startswith('<STR_LIT>'):<EOL><INDENT>subname = subname[<NUM_LIT:2>:]<EOL><DEDENT>return subname<EOL>
Returns the location that the junction points, raises ValueError if path is
not a junction.

CommandLine:
    python -m ubelt._win32_links _win32_read_junction

Example:
    >>> # xdoc: +REQUIRES(WIN32)
    >>> import ubelt as ub
    >>> root = ub.ensure_app_cache_dir('ubelt', 'win32_junction')
    >>> ub.delete(root)
    >>> ub.ensuredir(root)
    >>> dpath = join(root, 'dpath')
    >>> djunc = join(root, 'djunc')
    >>> ub.ensuredir(dpath)
    >>> _win32_junction(dpath, djunc)
    >>> path = djunc
    >>> pointed = _win32_read_junction(path)
    >>> print('pointed = {!r}'.format(pointed))