3.1.4.1.4 Print Server Name Parameters

pName: This parameter is a pointer to a string that specifies the name of the print server that the method operates on. This MUST be a Domain Name System (DNS), NetBIOS, Internet Protocol version 4 (IPv4), Internet Protocol version 6 (IPv6), or Universal Naming Convention (UNC) name that remote procedure call (RPC) binds to, and it MUST uniquely identify a print server on the network.

For all methods taking a STRING_HANDLE custom binding handle parameter, the Print System Remote Protocol assumes that the bind routine provided by the client uses the name provided through the pName parameter to create the RPC binding, although that is not strictly necessary from an RPC perspective. Although it is possible to create an RPC binding to a different server than that identified by the pName parameter, the Print System Remote Protocol has not been designed and tested for that usage pattern. However, server implementations MAY choose to implement support for server names not identical to the server name used to create the RPC binding, and as a result effectively route the call to another server.<254>

Note Regardless of the preceding statement, server implementations MUST NOT assume that the server name passed via the pName parameter matches the name the server determined upon its own initialization; the server name passed in could differ from that name as a result of server name aliasing, for example, by use of DNS names or directory services. The server MUST use the passed-in name to compose names for responses because the client is not aware that aliasing occurred.

RPC binding handles are specified in [C706]. For rules governing server names, see section 2.2.4.16.

pServer: Synonymous with pName.

pszServer: Synonymous with pName.

Name: Synonymous with pName.

The individual method sections include the following parameter validation steps by reference:

  • Verify that the string pointed to by the Name parameter is well-formed according to the rules governing server names (section 2.2.4.16). If that verification fails, return the error code ERROR_INVALID_NAME.

  • Verify that the string pointed to by the Name parameter corresponds to a server name. If that verification fails, return any of the following error codes: ERROR_INVALID_NAME, ERROR_INVALID_PARAMETER, or ERROR_INVALID_PRINTER_NAME.

    The server SHOULD perform this validation step to ensure correctness with clients that do not derive the RPC binding directly from the STRING_HANDLE parameter.<255>