Logo Eng2ita
ENG2ITA Community Versione lo-fi
16/12/2017, 17:54 *
Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?

Login con username, password e lunghezza della sessione
E' stata disabilitata la ricerca ai visitatori! 
   Home   Sitemap Regolamento del forum Login Registrati  
Pagine: 1 
  Stampa  
Questo topic non e' stato ancora votato!
Non hai ancora votato questo topic. Seleziona una valutazione:
Autore Topic: Copy2Gb 1.1 per i file di oltre 2 Gb  (Letto 9594 volte)
0 Utenti e 1 Visitatore stanno guardando questo topic.
dkdk_it
The BOSS!
Amministratore
*****

Karma: 64593
Offline Offline

Post: 2893


Finis coronat opus


WWW
« il: 18/11/2006, 17:09 »

Copy2Gb 1.1 per Windows 9x/ME - Introduzione

Questa patch deve essere installata prima di Kernel Update Project 0.2.7, qualora vi serva anche quest'ultimo

Come menzionato qui http://support.microsoft.com/?id=318293 la shell di Windows 98SE non riesce a copiare i file di oltre 2Gb. Secondo Microsoft...

Citazione
Questo problema si può verificare a causa di un problema nelle versioni del file Shell32.dll che sono incluse con Windows 98 e Windows 98 Seconda edizione. La causa principale esiste un'operazione utilizzata dallo shell in Windows 95/98 e Microsoft Windows NT 4.0 che interpreta i valori che sono maggiori a 2 GB come numeri negativi sul file generico.
...il problema è in shell32.dll.

Sfortunatamente, Microsoft ha ragione in parte. Ispezionato il codice per la copia nel file shell32.dll, il problema attuale si ripercuote nel kernel stesso, nell'API _llseek.

Codice:
CODE7FCEB349     mov     [ebp+nNumberOfBytesToWrite], eax
7FCEB34C     mov     eax, [edi+20h]
7FCEB34F     cmp     eax, 30000h; over 192Kb in size?
7FCEB354     jbe     short 7FCEB386; no pre-enlargement if not
7FCEB356     push    ebx; iOrigin
7FCEB357     mov     ebx, ds:_llseek
7FCEB35D     push    eax; lOffset
7FCEB35E     push    [ebp+hDestFile]; hFile
7FCEB361     call    ebx; _llseek apparently has problems seeking over 2Gb
7FCEB363     cmp     eax, 0FFFFFFFFh
7FCEB366     jz      loc_0_7FCEB55D; fails here
7FCEB36C     push    [ebp+hDestFile]; hFile
7FCEB36F     call    ds:SetEndOfFile
7FCEB375     test    eax, eax
7FCEB377     jz      loc_0_7FCEB55D
7FCEB37D     push    0; iOrigin
7FCEB37F     push    0; lOffset
7FCEB381     push    [ebp+hDestFile]; hFile
7FCEB384     call    ebx; _llseek

Per coloro che non comprendono il codice di sopra, esso tenta di incrementare il file di destinazione nella misura corretta cercando le dimensioni del file di origine e in seguito configurando la fine del file in quel punto. Sfortunatamente, se il file è >2Gb,  _llseek restituisce un errore di "parametro invalido". A meno che il file sia oltre 192Kb di dimensioni, nessun tentativo di ridimensionamento verrà attuato, visto che il file lo effettua in automatico quando i dati vengono scritti.

O il bug è nella funzione _llseek nel kernel e il codice in shell32 è a posto, o _llseek è stato progettato in questa maniera (ad esempio interpreta >2Gb come se stesse spostando indietro il puntatore del file, ma il puntatore è già all'inizio del file così esso lo avvisa) e la shell32 sono difettosi.

Soluzioni praticabili

Notiamo parecchie possibili soluzioni:

  • Applicare la patch su shell32.dll per usare una nuova funzione SetFilePointer che usi i numeri interi firmati a 64-bit - difficile ma è la soluzione più "corretta".
  • Applicare la patch in _llseek nel kernel32.dll per interpretare la ricerca dall'inizio con offset negativo come offset positivo - difficoltà moderata, che può bloccare alcune applicazioni, ma quale programma potrebbe spostare il puntatore del file oltre l'inizio del file?
    Questa è la soluzione adottata in questa discussione, che consiste nella sostituzione del kernel.
  • Cambiare il jump condizionale in 7FCEB354 con un jump permanente - più semplice, ma non più incrementabile - è veramente necessaria l'incrementazione?

Domande frequenti (FAQ)

  • Questa patch può essere usata insieme ad altre patch modificate del kernel?
    Usando questa patch annullerai altre funzionalità di un kernel modificato, dato che è basato sugli originali KERNEL32.DLL delle rispettive versioni.
  • E' possibile che le operazioni di alcuni programmi si blocchino in seguito all'applicazione della patch?
    Solo se il programma tenta di cercare oltre l'inizio di un file. Se lo fa, l'errore è del codice del programma, non di questo kernel.

Download

NEW: Per Windows 98/98SE e Windows Millennium sono disponibili gli eseguibili, per cui non è necessario andare in DOS per la sostituzione del file. In questo caso per rimuovere Copy2GB, andare in pannello di controllo > installazione applicazioni.

Aggiornamenti del kernel (in lingua italiana):
ITC2GB98 (Per Windows 98 Prima/Seconda Edizione)
md5: c0261b531787f561ba4acc2168bdbd90
ITC2GBME (Per Windows Millenium)
md5: d191bc792b3bc897a2f22dd19154dbdb

Strumento di verifica:
Make2Gb 1.0
md5: 81b0032ecec1b807a804ddda9d3f2fe3

Ringraziamenti:

Un Ringraziamento speciale va a LLXX per lo sviluppo di questo progetto, in particolare alla comunità di Msfn.org. La licenza è freeware, senza nessuna restrizione. L'autore non sarà responsabile in alcun modo (negligenza compresa) per danni o danni successivi in seguito all'uso di questo software. E' fortemente raccomandato di fare una backup di tutti i dati prima dell'installazione di questo software. Il software non è approvato per l'uso nei sistemi mission-critical.
« Ultima modifica: 15/12/2007, 20:54 da Max » Loggato

ENG2ITA Community
« il: 18/11/2006, 17:09 »

 Loggato
ale5000
Newbie
*

Karma: 0
Offline Offline

Post: 9


« Rispondi #1 il: 14/12/2006, 17:41 »

Con questo aggiornamento quale diventa la dimensione massima del file per poterlo copiare?
Loggato
dkdk_it
The BOSS!
Amministratore
*****

Karma: 64593
Offline Offline

Post: 2893


Finis coronat opus


WWW
« Rispondi #2 il: 14/12/2006, 18:37 »

Teoricamente non c'è limite... se non quello dello spazio disponibile su disco.
A presto.
Loggato

ale5000
Newbie
*

Karma: 0
Offline Offline

Post: 9


« Rispondi #3 il: 15/12/2006, 18:46 »

Il file kernel32.dll è in Italiano, quello patchato è in inglese, questo è un problema.
Loggato
Max
Amministratore
*****

Karma: 114
Offline Offline

Post: 1569



WWW
« Rispondi #4 il: 16/12/2006, 19:22 »

Il file kernel32.dll è in Italiano, quello patchato è in inglese, questo è un problema.

Ho localizzato anche gli altri file per la lingua italiana.
Loggato


miki64
Hero Member
*****

Karma: 36
Offline Offline

Post: 609



« Rispondi #5 il: 05/03/2007, 22:20 »

Domenico, credo sia meglio aggiungere nella tua descrizione anche il riferimento al s.o. Windows Me (c'è solo il 98!).

Infatti solo leggendo il kernel si scopre che questa "patch" è valida anche per il Wondows Millennium Edition....  Wink
Loggato

Max
Amministratore
*****

Karma: 114
Offline Offline

Post: 1569



WWW
« Rispondi #6 il: 05/03/2007, 22:51 »

Domenico, credo sia meglio aggiungere nella tua descrizione anche il riferimento al s.o. Windows Me (c'è solo il 98!).

Infatti solo leggendo il kernel si scopre che questa "patch" è valida anche per il Wondows Millennium Edition....  Wink

E' una questione più complicata di quello che si può pensare.
Il problema è affetto solo su Win98/98SE (come dice la Microsoft stessa), ma l'autore, che conosce l'assembly, ha comunque deciso di patchare il kernel di Win ME.

Non mi chiedere perchè.
Loggato


miki64
Hero Member
*****

Karma: 36
Offline Offline

Post: 609



« Rispondi #7 il: 06/03/2007, 10:56 »

Quindi, Max, per il mio benedetto aggiornamento di Millennium Edition forse faccio meglio a non utilizzarlo?

OT: un'altra cosa.
Qui al punto 18 di Win Me (WMP10 XP + IE 6.0 XP SP2 su Windows 98 SE/ME) ho grosse difficoltà a capire quali patch/codec/etc. devo scaricare quando mi collego sui siti linkati (l'elenco è lunghissimo)
Citazione

Sono fortemente raccomandati:
- WMP10 Codecs + DRM for WMP9:
http://www.mdgx.com/wmp.htm#DRM10
- MS IE 6.0 SP1 (hot)fixes/patches/updates:
http://www.mdgx.com/ietoy.htm#BRO
- WMP9 (hot)fixes/patches/updates:
http://www.mdgx.com/wmp.htm#WMP
Ehm... non potresti dare qualche indicazione in più?

Ultima cosa.
Se ho ben capito è meglio NON complicarsi la vita del proprio ME con il Revolutions Pack Lite 6++ / 7--, vero?

Grazie della pazienza.
« Ultima modifica: 06/03/2007, 10:57 da miki64 » Loggato

Max
Amministratore
*****

Karma: 114
Offline Offline

Post: 1569



WWW
« Rispondi #8 il: 06/03/2007, 17:46 »

Quindi, Max, per il mio benedetto aggiornamento di Millennium Edition forse faccio meglio a non utilizzarlo?

OT: un'altra cosa.
Qui al punto 18 di Win Me (WMP10 XP + IE 6.0 XP SP2 su Windows 98 SE/ME) ho grosse difficoltà a capire quali patch/codec/etc. devo scaricare quando mi collego sui siti linkati (l'elenco è lunghissimo)
Citazione

Sono fortemente raccomandati:
- WMP10 Codecs + DRM for WMP9:
http://www.mdgx.com/wmp.htm#DRM10
- MS IE 6.0 SP1 (hot)fixes/patches/updates:
http://www.mdgx.com/ietoy.htm#BRO
- WMP9 (hot)fixes/patches/updates:
http://www.mdgx.com/wmp.htm#WMP
Ehm... non potresti dare qualche indicazione in più?

Ultima cosa.
Se ho ben capito è meglio NON complicarsi la vita del proprio ME con il Revolutions Pack Lite 6++ / 7--, vero?

Grazie della pazienza.

Il Revolution Pack 7-- non è supportato come il 6++, puoi sempre provare quest'ultimo.
Il Copy2GB puoi anche applicarlo sul kernel di Win Me, perchè se è stata fatta una correzione ci sarà stata una valida motivazione, come ad esempio che microsoft, più sforna sistemi operativi e maggiori sono i problemi.  Grin
Per quanto riguarda quei Codec WMP10 + DRM for WMP9, non mi sembra difficile intuire che il collegamento porta a una determinata posizione della pagina in cui è presente il download "Windows 98/98 SE/ME Update [4.16 MB]", nella categoria in rosso "WMP10 DRM + Codecs".
Non lo aggiungo direttamente qui, dato che MDGx sforna aggiornamenti continui e io dovrei fare altrettanto.
Loggato


walter sampei
Newbie
*

Karma: 2
Offline Offline

Post: 21


« Rispondi #9 il: 12/03/2007, 14:13 »

Teoricamente non c'è limite... se non quello dello spazio disponibile su disco.
A presto.

scusa, ma il limite dei files in fat32 non era 4 giga meno 2 byte?  ???
Loggato
the fox
Jr. Member
**

Karma: 0
Offline Offline

Post: 65


« Rispondi #10 il: 12/03/2007, 15:53 »

Teoricamente non c'è limite... se non quello dello spazio disponibile su disco.
A presto.

scusa, ma il limite dei files in fat32 non era 4 giga meno 2 byte?  ???

Confermo.
Il limite massimo di dimensione di file che si possono creare su un volume FAT32 e' 4GB... meno i 2 byte che nn fanno la differenza.
E si possono creare anche senza la patch, salvo poi nn poterli copiare e/o spostare ma solo leggere, modificare o cancellare.
Loggato
dkdk_it
The BOSS!
Amministratore
*****

Karma: 64593
Offline Offline

Post: 2893


Finis coronat opus


WWW
« Rispondi #11 il: 12/03/2007, 16:29 »

Teoricamente non c'è limite... se non quello dello spazio disponibile su disco.
A presto.

Confermo e rettifico... massimo 4GB!  Grin
Loggato

miki64
Hero Member
*****

Karma: 36
Offline Offline

Post: 609



« Rispondi #12 il: 12/03/2007, 18:59 »

Teoricamente non c'è limite... se non quello dello spazio disponibile su disco.
A presto.

Confermo e rettifico... massimo 4GB!  Grin
Il limite dei 4 GB non esiste per una partizione NTFS, vero?
Mentre per la masterizzazione in formato ISO il limite è 2 GB, giusto o ricordo male?
Loggato

dkdk_it
The BOSS!
Amministratore
*****

Karma: 64593
Offline Offline

Post: 2893


Finis coronat opus


WWW
« Rispondi #13 il: 12/03/2007, 20:09 »

Il limite dei 4 GB non esiste per una partizione NTFS, vero?
Mentre per la masterizzazione in formato ISO il limite è 2 GB, giusto o ricordo male?

Esatto! Grin
Loggato

Pagine: 1 
  Stampa  
 
Salta a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | Sitemap XHTML 1.0 Valido! CSS Valido!

Eng2ita.net - Tutti i diritti riservati ©2006-2015   |   Privacy policy |   Licenza Creative Commons