Si nos decis el valor de ret tal vez sepamos que significa.
VB no es lo mio pero los parametros que tiene que recibir la funcion son estos:
1. Puntero a cadena UNICODE (o cero como en este caso)
2. Puntero a cadena UNICODE
3. DWORD (LONG de VB segun creo recordar)
4. Puntero a la estructura (USER_INFO_1 en este caso)
5. Puntero a DWORD (o cero como en este caso)
La estructura esta definida toda como LONG porque eso es lo que ocupa un puntero en x86 (4 bytes) hay varios campos que deben tener punteros a Unicode, entre ellos el del password.
Te dejo el ejemplo en C, tal vez te sirva:
Código:
USER_INFO_1 ui;
ZeroMemory(&ui, sizeof(USER_INFO_1));
ui.usri1_password = L"nuevaclave";
NetUserSetInfo(0, L"Administrador", 1, (LPBYTE)&ui, 0);