SetPort function

The SetPort function sets the status associated with a printer port.

Syntax

BOOL SetPort(
  _In_ LPTSTR pName,
  _In_ LPTSTR pPortName,
  _In_ DWORD  dwLevel,
  _In_ LPBYTE pPortInfo
);

Parameters

pName [in]

Pointer to a zero-terminated string that specifies the name of the printer server to which the port is connected. Set this parameter to NULL if the port is on the local machine.

pPortName [in]

Pointer to a zero-terminated string that specifies the name of the printer port.

dwLevel [in]

Specifies the type of structure pointed to by the pPortInfo parameter.

This value must be 3, which corresponds to a PORT_INFO_3 data structure.

pPortInfo [in]

Pointer to a PORT_INFO_3 structure that contains the port status information to set.

Return value

If the function succeeds, the return value is a nonzero value.

If the function fails, the return value is zero.

Remarks

Note

This is a blocking or synchronous function and might not return immediately. How quickly this function returns depends on run-time factors such as network status, print server configuration, and printer driver implementation factors that are difficult to predict when writing an application. Calling this function from a thread that manages interaction with the user interface could make the application appear to be unresponsive.

The caller of the SetPort function must be executing as an Administrator. Additionally, if the caller is a Port Monitor or Language Monitor, it must call RevertToSelf to cease impersonation before it calls SetPort.

All programs that call SetPort must have SERVER_ACCESS_ADMINISTER access to the server to which the port is connected.

When you set a printer port status value with the severity value PORT_STATUS_TYPE_ERROR, the print spooler stops sending jobs to the port. The print spooler resumes sending jobs to the port when the port status is cleared by another call to SetPort.

Requirements

Requirement Value
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Winspool.h (include Windows.h)
Library
Winspool.lib
DLL
Winspool.drv
Unicode and ANSI names
SetPortW (Unicode) and SetPortA (ANSI)

See also

Printing

Print Spooler API Functions

PORT_INFO_3