Nose bien lo que quieres hacer pero mas o menos por lo que entendi te hice un codigo
include 'win32ax.inc'
.data
lBuffer rb 100
.code
start:
invoke GetLogicalDriveStrings,100,lBuffer
invoke lstrlenW,lBuffer
mov ebx,2
mul ebx
mov ebx,eax
inc ebx
invoke GlobalAlloc ,GPTR, ebx ;Creamos otro buffer
mov edi,eax ; Guardamos el buffer en edi
stdcall cRtlMoveMemory,eax,lBuffer,ebx ;Copiamos lo que se encuentra en lBuffer a el buffer generado por GlobalAlloc
stdcall Zerar,lBuffer,ebx;Vaciamos el lBuffer
invoke MessageBox,0,edi,0,0
invoke MessageBox,0,lBuffer,0,0
invoke ExitProcess,0
;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
; by YST
proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
push esi edi
xchg edi,[cBuffer]
xchg esi,[Cpuntero]
.bucleb:
dec [cCantidad]
movsb
cmp [cCantidad],0
jge .bucleb
pop edi esi
ret
endp
proc Zerar,Puntero,Cantidad
push ecx
push ebx
mov ecx,[Cantidad]
mov ebx,[Puntero]
.bucle:
mov byte[ebx+ecx],0
loop .bucle
mov byte[ebx],0
pop ebx
pop ecx
ret
endp
.end start