Atualizando a pergunta porque sei mais sobre a causa do problema, mas ainda não sei como resolvê-la.
Atualmente, posso ver miniaturas de alguns arquivos CR2 no Windows Explorer. Talvez apenas 1-5% de todos eles. Eu posso forçar as janelas a gerar uma miniatura para qualquer miniatura específica (clicando repetidamente nela e pressionando F5 para atualizar sua pasta). Portanto, eu não acho que o problema é que eu não tenho um aplicativo que possa ler e criar miniaturas CR2. Eu definitivamente tenho um aplicativo que pode fazer isso (FastPictureViewer). Eu tenho centenas de miniaturas geradas com sucesso. O problema é que tenho dezenas de milhares de arquivos RAW.
Just FYI, o próprio Raw Codec da Canon, bem como o Camera Codec Pack da Microsoft, assim como o SageThumbs, são todos baseados em uma versão mais antiga do formato CR2, então eles não trabalham para criar miniaturas de arquivos RAW criados por um mais nova câmera, no meu caso um Rebel T5.
Estou 99% convencido de que o problema é que o Windows tem um limite para o tamanho do cache de miniaturas. Existe uma entrada de registro para aumentar este limite:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \
Crie uma nova chave chamada Max Cached Icons e atribua a ela um valor que represente o tamanho do cache de ícone, ou seja, 4096 para 4 megas.
Aqui é onde fica confuso - eu obtive muitas informações conflitantes sobre essa chave.
• Alguns dizem que essa chave deve ser do tipo "string"
• Alguns dizem que deveria ser do tipo "Dword"
• Um usuário sugere que ele deve ser "Qword" em um sistema de 64 bits.
• Um usuário diz que costumava ser "String", mas isso é considerado não ortodoxo para controlar com um valor de string, e deve ser um dword, e uma das atualizações do microsoft para o windows7 o altera para o tipo dword mais apropriado.
• Vi a chave com e sem espaços (por exemplo, MaxCachedIcons) Sem é mais comum para uma chave de registro, mas vários usuários fazem de tudo para dizer "sim, inclua os espaços mesmo que isso seja incomum".
Além disso - não há arquivo único para o cache de miniaturas, existem vários arquivos para os vários tamanhos de ícone. Estes vivem em C: \ Users [Nome de usuário] \ AppData \ Local \ Microsoft \ Windows \ Explorer e são nomeados
thumbcache_32.db
thumbcache_96.db
thumbcache_256.db
thumbcache_1024.db
Portanto, não está claro se essa configuração limita o tamanho de todos os 4 arquivos juntos ou permite que cada um desses 4 arquivos aumentem até o limite definido.
Depois de excluí-los e permitir que as janelas os reconstruam, não tenho a chave do registro no formato correto (embora experimentei muitos formatos) ou o Windows tem um limite rígido no cache de miniaturas que não pode ser excedido, independentemente do tamanho da chave de registro. Eu tentei 2048, 4096, 8192. Estranhamente, os arquivos em um ponto não iriam além de 3148 kb (3 megas). Atualmente eles estão presos em 4096, mas a chave de registro está definida para 8192. Nunca vi nenhum desses arquivos crescer além de 4096.
Sei que estou no caminho certo, porque se eu os excluir e começar a forçar a geração de miniaturas usando o método descrito anteriormente, o tamanho da lista de banco de dados de ícones aumentará (thumbcache_idx.db), mas os outros arquivos .db se recusarão a crescer mais. Este link descreve como as miniaturas funcionam: link
E esses arquivos definitivamente controlam as miniaturas do CR2 porque eu posso usar um pequeno aplicativo chamado thumbcacheviewer (ou thumbcache_viewer) para abrir os arquivos do banco de dados e ver as miniaturas dentro deles, e eles são minhas miniaturas CR2.
Então, agora, estou convencido de que atingi o limite de miniaturas nas janelas. Agora é só uma questão de ... se eu inserir essa chave de registro de uma maneira diferente, posso ignorar o limite? Ou é apenas definido em pedra?