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.