

def win32GetLinkLocalIPv6Addresses():
    '\n    Return a list of strings in colon-hex format representing all the link local\n    IPv6 addresses available on the system, as reported by\n    I{WSAIoctl}/C{SIO_ADDRESS_LIST_QUERY}.\n    '
    s = socket(AF_INET6, SOCK_STREAM)
    size = 4096
    retBytes = c_int()
    for i in range(2):
        buf = create_string_buffer(size)
        ret = WSAIoctl(s.fileno(), SIO_ADDRESS_LIST_QUERY, 0, 0, buf, i, byref(retBytes), 0, 0)
        if (ret and retBytes.value):
            size = retBytes.value
        else:
            break
    if ret:
        raise RuntimeError('WSAIoctl failure')
    addrList = cast(buf, POINTER(make_SAL(0)))
    addrCount = addrList[0].iAddressCount
    addrList = cast(buf, POINTER(make_SAL(addrCount)))
    addressStringBufLength = 1024
    addressStringBuf = create_string_buffer(addressStringBufLength)
    retList = []
    for i in range(addrList[0].iAddressCount):
        retBytes.value = addressStringBufLength
        address = addrList[0].Address[i]
        ret = WSAAddressToString(address.lpSockaddr, address.iSockaddrLength, 0, addressStringBuf, byref(retBytes))
        if ret:
            raise RuntimeError('WSAAddressToString failure')
        retList.append(string_at(addressStringBuf))
    return [addr for addr in retList if ('%' in addr)]

dataset/ETHPy150Open twisted/twisted/twisted/internet/test/_win32ifaces.py win32GetLinkLocalIPv6Addresses/VarMisuse@65/170 `size`->`i`