Buscando em arquivos grandes com ifstream

Estou implementando um programa em C ++ usando ifstream que deve buscar em arquivos grandes (~ 1TB). No entanto, isso falha depois de ler 2 GB. Existe uma maneira de obter posições de arquivos, mesmo para arquivos grandes? Eu compilo para uma máquina Windows de 32 bits.

std::ifstream f;
f.open( filename.c_str(), std::ifstream::in | std::ifstream::binary );
while(true) {
    std::cout << (uint64_t)(f.tellg()) << std::endl;
    //read data
}

questionAnswers(1)

yourAnswerToTheQuestion