TCPMON Xcv-Schnittstelle
In diesem Abschnitt wird die transceive Schnittstelle (Xcv) für den TCP/IP-Standardportmonitor (TCPMON) beschrieben. Diese Schnittstelle, die mithilfe von XcvData - und XcvDataPort-Funktionsaufrufen implementiert wird, ermöglicht es denjenigen, die sie verwenden, einen TCP/IP-Druckerport zu konfigurieren oder Informationen über eine TCP/IP-Druckerportkonfiguration abzurufen. Die in diesem Abschnitt beschriebene Xcv-Schnittstelle ist spezifisch für TCP/IP-Ports. Andere Xcv-Schnittstellen sind möglicherweise für andere Porttypen verfügbar.
Um ein Handle für eine Xcv-Schnittstelle für einen lokalen Computer oder einen Remotecomputer abzurufen, rufen Sie die OpenPrinter-Funktion auf. Im folgenden Codebeispiel wird veranschaulicht, wie Ein Xcv-Handle für einen Port abgerufen wird:
HANDLE hXcv = INVALID_HANDLE_VALUE;
PRINTER_DEFAULTS Defaults = { NULL, NULL, <Required Access> };
// Handle to a local machine
if (OpenPrinter(",XcvPort <PortName>", &hXcv, &Defaults )
{
// hXvc contains an Xcv data handle to a local TCPMON port
}
// Handle to a remote machine
if (OpenPrinter("<ServerName>\\,XcvPort <PortName>", &hXcv, &Defaults )
{
// hXvc contains an Xcv data handle to a TCPMON port on <ServerName>
}
Im Codebeispiel stellen Servername und PortName Server- und Portnamezeichenfolgen dar. Nachdem Sie das Handle abgerufen haben, können Sie informationen abfragen, die für den TCPMON-Portmonitor spezifisch sind, oder Sie können die Portkonfiguration ändern. Beachten Sie, dass der Zugriff, den Sie für den Portmonitor benötigen, im DesiredAccess-Member der PRINTER_DEFAULTS-Struktur angegeben werden muss oder NULL übergeben muss, wenn keine besondere Sicherheit erforderlich ist. Für bestimmte Aufrufe der XcvData-Funktion , z. B. wenn die Befehle AddPort und DeletePort angegeben werden (siehe TCPMON Xcv-Befehle), ist SERVER_ACCESS_ADMINISTER Berechtigung erforderlich. Ausführliche Informationen zur OpenPrinter-Funktion und zu den Zugriffsrechten, die in der PRINTER_DEFAULTS-Struktur angefordert werden können, finden Sie in der Dokumentation zur OpenPrinter-Funktion .
Wenn der Port noch nicht vorhanden ist, kann das Xcv-Handle vom Server abgerufen werden, indem Sie den Monitornamen angeben. (Im Fall des STANDARD-TCP/IP-Portmonitorports ist dies "Tcp/IP-Standardport".) Im folgenden Codebeispiel wird veranschaulicht, wie Ein Xcv-Datenhandle für einen Portmonitor abgerufen wird:
HANDLE hXcv = INVALID_HANDLE_VALUE;
PRINTER_DEFAULTS Defaults = { NULL, NULL, <Required Access> };
// Handle to a local machine
if (OpenPrinter(",XcvMonitor <MonitorName>", &hXcv, &Defaults )
{
// hXcv contains an Xcv data handle to the monitor <MonitorName>
}
// Handle to a remote machine
if (OpenPrinter("<ServerName>\\,XcvMonitor <MonitorName>", &hXcv, &Defaults )
{
// hXcv contains an Xcv data handle to the monitor
// <MonitorName> on the server <ServerName>
}
Im Codebeispiel stellen Servername und PortName Server- und Portnamezeichenfolgen dar. Nachdem Sie das Xcv-Datenhandle abgerufen haben, können Sie Anweisungen und Anforderungen an den Monitor ausstellen, indem Sie die XcvData-Funktion aufrufen.
Beachten Sie, dass der Rückgabewert der XcvData-Funktion nur angibt, ob die Daten ordnungsgemäß an den Portmonitor gesendet wurden. Ein Rückgabewert von TRUE gibt nicht an, dass der Vorgang erfolgreich war. Überprüfen Sie den Wert in *pdwStatus, um festzustellen, ob der Vorgang erfolgreich war. Diese status Werte sind in der folgenden Tabelle zusammengefasst:
Statuswert | Bedeutung |
---|---|
NO_ERROR | Der Vorgang wurde durchgeführt. |
ERROR_ACCESS_DENIED | Der Benutzer verfügt über unzureichende Berechtigungen. Für den Befehl ist SERVER_ACCESS_ADMINISTER Berechtigung erforderlich. |
ERROR_INSUFFICIENT_BUFFER | Ein Ausgabepuffer ist erforderlich, aber kleiner als erforderlich. |
ERROR_INVALID_DATA | Ein Eingabepuffer ist erforderlich, aber der Zeiger darauf ist NULL, oder die Größe des Eingabepuffers ist kleiner als erforderlich. |
ERROR_INVALID_HANDLE | Das Xcv-Datenhandle ist ungültig. |
ERROR_INVALID_LEVEL | Die Struktur der Eingabe- oder Ausgabedaten ist nicht die richtige Version. |
ERROR_INVALID_PARAMETER | Ein Ausgabepuffer ist erforderlich, aber NULL, oder der erforderliche Ausgabeparameter ist NULL und der Ausgabepuffer ist zu klein, oder der TCP/IP-Standardportmonitor versteht den ausgegebenen Befehl nicht. |