Сбой XcvData с GetConfigInfo

Я пытаюсь прочитать конфигурацию порта принтера с помощью XcvData, но она завершается с ошибкой 87 (неверный параметр). У меня нет проблем с добавлением порта или настройкой конфигурации порта. Я видел несколько примеров кода C #, которые делают именно то, что я делаю, поэтому я не уверен, что вызывает сбои. Любые предложения будут оценены.
Благодарю.

Образец кода:

PRINTER_DEFAULTS defaults = { NULL, NULL, SERVER_ACCESS_ADMINISTER };
HANDLE hPrinter;

if (::OpenPrinter(L", XcvMonitor Standard TCP/IP Port", hPrinter, &defaults))
{
CONFIG_INFO_DATA_1 configInfoData1;
memset(&configInfoData1, 0, sizeof(configInfoData1));
configInfoData1.dwVersion = 1;

PORT_DATA_1 portData1;
// this initialization does not seem to help
memset(&portData1, 0, sizeof(portData1));
portData1.cbSize = sizeof(portData1);

DWORD dwStatus = 0;
DWORD dwNeeded = 0;

// this always fails with dwStatus 87 (invalid parameter)
if (XcvData(hPrinter, L"GetConfigInfo", (PBYTE)&configInfoData1,
sizeof(configInfoData1), (PBYTE)&portData1, sizeof(portData1), &dwNeeded, &dwStatus))
{
if (dwStatus != 0)
{
[...]
// throw exception
}

_ASSERTE(dwNeeded > 0);

[...]
}// this works fine
if (XcvData(hPrinter, L"ConfigPort", (PBYTE)&m_portData1, sizeof(m_portData1),
NULL, 0, &dwNeeded, &dwStatus))
{
[...]
}

[...]
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]