Помогите, пожалуйста, кто нибудь. При компилляции вылетает на втором (i=1) цикле на строке *L_Serial=AllocateMemory(4). Только не надо говорить о неразумном расходовании памяти, в программе и не такое может встретиться. Пробовал компилить на PB 4.01 и 4.20. В чем тут ошибка не пойму

;OpenLibrary(0, "kernel32.DLL")
For i=0 To 25
Debug i
*S_Drive=AllocateMemory(256)
PokeS(*S_Drive,Chr(65+i)+":\")
*S_Volume=AllocateMemory(256)
PokeS(*S_Volume,Space(256))
*L_Volume=AllocateMemory(4)
PokeL(*L_Volume,256)
*L_Serial=AllocateMemory(4)
PokeL(*L_Serial,0)
*L_Max=AllocateMemory(4)
PokeL(*L_Max,0)
*L_Flags=AllocateMemory(4)
PokeL(*L_Flags,0)
*S_FileSys=AllocateMemory(256)
*L_FileSys=AllocateMemory(4)
PokeL(*L_FileSys,256)
;res=CallFunction(0, "GetVolumeInformationA",*S_Drive,*S_Volume,*L_Volume,*L_Serial,*L_Max,*L_Flags,*S_FileSys,*L_FileSys)
If res=1
Debug "path "+PeekS(*S_Drive)
Debug "volume name "+ PeekS(*S_Volume)
Debug "Serial "+Str(PeekL(*L_Serial))
Debug "Flags "+Str(PeekL(*L_Flags))
Debug "File system "+PeekS(*S_FileSys)
EndIf
*S_DriveName=AllocateMemory(256)
PokeS(*S_DriveName,Chr(65+i)+":\")
*L_Free=AllocateMemory(8)
PokeQ(*L_Free,0)
*L_Total=AllocateMemory(8)
PokeQ(*L_Total,0)
*L_Avial=AllocateMemory(8)
PokeQ(*L_Avial,0)
; res=CallFunction(0, "GetDiskFreeSpaceExA",*S_DriveName,*L_Free,*L_Total,*L_Avial)
If res=1
Debug "path "+PeekS(*S_Drive)
Debug "Free "+Str(PeekQ(*L_Free)/1048576)
Debug "Total "+Str(PeekQ(*L_Total)/1048576)
Debug "Aviable "+Str(PeekQ(*L_Avial)/1048576)
EndIf
Next