3.2.4.1.4 RpcRouterReplyPrinterEx (Opnum 66)
RpcRouterReplyPrinterEx handles a notification from a print server.<442>
DWORD RpcRouterReplyPrinterEx( [in] PRINTER_HANDLE hNotify, [in] DWORD dwColor, [in] DWORD fdwFlags, [out] DWORD* pdwResult, [in] DWORD dwReplyType, [in, switch_is(dwReplyType)] RPC_V2_UREPLY_PRINTER Reply );
-
hNotify: A notification RPC context handle that was opened by RpcReplyOpenPrinter (section 3.2.4.1.1).
-
dwColor: The value that was most recently specified by the client in the dwColor parameter of a call to RpcRouterRefreshPrinterChangeNotification (section 3.1.4.10.5).
-
fdwFlags: A value that contains Printer Change Flags (section 2.2.3.6), which indicate changes in printer configuration values.
-
pdwResult: A pointer to a value that contains Change Notification Flags (section 2.2.3.2), which indicate how the client processed the notification.
-
dwReplyType: A value that MUST be zero.
-
Reply: A pointer to an RPC_V2_UREPLY_PRINTER union, which contains a pointer to an RPC_V2_NOTIFY_INFO structure, which contains available notification data that matched the set of notifications that the client previously requested.
-
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 print client MUST validate parameters as follows:
-
Verify that the hNotify parameter is an RPC context handle to a notification object that was opened using RpcReplyOpenPrinter, and if that verification fails, return ERROR_INVALID_HANDLE, as specified in [MS-ERREF]. This method SHOULD assume that this handle can be used without further access checks.
-
Verify that the value of the dwColor parameter matches the last value that was passed in the dwColor parameter in the call to RpcRouterRefreshPrinterChangeNotification; if that verification fails, set the PRINTER_NOTIFY_INFO_COLORMISMATCH bit in the variable pointed to by pdwResult and return 0.
If parameter validation fails, the client MUST fail the operation immediately and return a nonzero error response to the server. Otherwise, the client MUST process the message as follows:
-
Capture the fdwFlags in the notification state it maintains.
-
Capture the notification data provided in the Reply parameter in the notification state.
-
Store the result of processing the notification (Change Notification Flags) to the variable pointed to by pdwResult.