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: This parameter MUST be a non-NULL pointer to a string that MUST specify the file name of the print processor. For rules governing path names, see section 2.2.4.9.
-
pPrintProcessorName: This parameter MUST be a non-NULL pointer to a string that MUST specify 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, as specified in [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, as specified in [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, as specified in [MS-ERREF].<397>
-
Additional validation MAY<398> 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.