The error message tells you that have insufficient parameters, so that's what happens. Add a debug line right above it to see what's being sent to it:

echo -s debug: $nopath($script) $scriptline (1) $1 (2-) $2-

Using /dll is actually a little more forgiving than $dll is. When there's a dllproc which doesn't need any parameters, the $dll form still requires you send the empty parm like $dll(filename.dll,procname,)

However the /dll method doesn't object to it.
//dll filename.dll RequiredProcname OptionalData

However, the fact that /dll gives this error means that, not only are you missing the 'data' parm, but you're also missing the procname too. It looks like this syntax is expecting the procname to be part of the $1- but I can't find this alias being called anywhere that passes any parms at all to it.

Also, I see you have a local and global alias both named the same thing. This can also cause confusion, since the script itself can see the "alias -l aliasname", but the channel editbox or other scripts can only see the "alias aliasname"