Похоже, вам нужно, чтобы значение имени было установлено внешним кодом. Прошло некоторое время с тех пор, как я выполнил pInvoke, но я считаю, что правильной является подпись:
[DllImport("slpapi62", EntryPoint = "_SlpGetPrinterName@12")]
public static extern int SlpGetPrinterName(int nIndex, out string strPrinterName, int nMaxChars);
Обратите внимание на ключевое слово out перед строкой strPrinterName. Вы бы тогда назвали это так:
string name;
SlpGetPrinterName(0, out name, 128);