3.1.4.8.1 RpcAddPrintProcessor (Opnum 14)

RpcAddPrintProcessor installs a print processor on the specified server and adds its name to an internal list of supported print processors.

 DWORD RpcAddPrintProcessor(
   [in, string, unique] STRING_HANDLE pName,
   [in, string] wchar_t* pEnvironment,
   [in, string] wchar_t* pPathName,
   [in, string] wchar_t* pPrintProcessorName
 );

pName: This parameter MUST adhere to the parameter specification in Print Server Name Parameters (section 3.1.4.1.4).

pEnvironment: This parameter MUST adhere to the parameter specification in Environment Name Parameters (section 3.1.4.1.3).

pPathName: A pointer to a string that specifies the file name of the print processor. For rules governing path names, see section 2.2.4.9.

pPrintProcessorName: A pointer to a string that specifies the name of the print processor. For rules governing print processor names, see section 2.2.4.11.

Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful completion or a nonzero Windows error code to indicate failure [MS-ERREF].

Upon receiving this message, the server MUST validate parameters as follows:

  • Perform the validation steps that are specified in Print Server Name Parameters.

  • Perform the validation steps that are specified in Environment Name Parameters.

  • Verify that the path identified by the string that is referenced by the pPathName parameter contains the necessary file for installing the print processor.

  • Verify that the print processor to be added does not have the name "winprint", and if that verification fails, return ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED [MS-ERREF].

  • Verify that the environment name specified by the pEnvironment parameter is not "Windows ARM", and if that verification fails, return ERROR_NOT_SUPPORTED [MS-ERREF].<370>

  • Additional validation MAY<371> be performed.

If parameter validation fails, the server MUST fail the operation immediately and return a nonzero error response to the client. Otherwise, the server MUST process the message and compose a response to the client as follows:

  • Copy the print processor file as appropriate to its destination and overwrite an existing print processor with the same name, if necessary.

  • Create the print processor object.

  • If any clients have registered for notification of server object changes, a notification MUST be broadcast to them.

  • Return the status of the operation.