0,0 → 1,16 |
Ïðè çàãðóçêå áèáëèîòåêè íóæíî âûçûâàòü ôóíêöèþ START ñ ïàðàìåòðîì DLL_ENTRY = 1. |
Ðàáî÷àÿ ïðîöåäóðà äëÿ ñîðòèðîâêè ïàïêè ýêñïîðòèðóåòñÿ êàê SortDir è ïðèíèìàåò |
òðè ïàðàìåòðà, óêàçàòåëü íà ìàññèâ áëîêîâ ñ èíôîðìàöèåé äëÿ ôàéëà |
(ñòàíäàðòíûå ýëåìåíòû ïî 304 áàéòà â ôîðìàòå ôóíêöèè 70), ÷èñëî òàêèõ áëîêîâ |
è òèï ñîðòèðîâêè: 0=èìÿ,2=ðàñøèðåíèå,4=âðåìÿ ïîñëåäíåé ìîäèôèêàöèè,6=ðàçìåð, |
10=âðåìÿ ñîçäàíèÿ,12=âðåìÿ ïîñëåäíåãî äîñòóïà,1,3,5,7,11,13 - ñîðòèðîâêà |
ïî ñîîòâåòñòâóþùåìó ïàðàìåòðó â îáðàòíîì ïîðÿäêå. |
Íàïðèìåð, äëÿ ñîðòèðîâêè ïî ðàñøèðåíèþ äàííûõ ïàïêè, òîëüêî ÷òî ïðî÷èòàííûõ |
ôóíêöèåé 70 â áóôåð dirdata, ìîæíî ñäåëàòü òàê: |
push 2 ; ðåæèì ñîðòèðîâêè |
push dword [dirdata+4] ; ÷èñëî ôàéëîâ |
; ìîæíî ïèñàòü push ebx, åñëè |
; äåëî ïðîèñõîäèò íåïîñðåäñòâåííî ïîñëå int 0x40 |
push dirdata+32 ; äàííûå ôàéëîâ |
call [SortDir] |
; òåïåðü äàííûå â dirdata îòñîðòèðîâàíû |