3.2.4.1.2 RpcRouterReplyPrinter (Opnum 59)
RpcRouterReplyPrinter handles a notification from a print server.<414>
-
DWORD RpcRouterReplyPrinter( [in] PRINTER_HANDLE hNotify, [in] DWORD fdwFlags, [in, range(0,512)] DWORD cbBuffer, [in, unique, size_is(cbBuffer), disable_consistency_check] BYTE* pBuffer );
hNotify: A notification handle that was opened by the server using RpcReplyOpenPrinter (section 3.2.4.1.1).
fdwFlags: A value that contains Printer Change Flags (section 2.2.3.6), which indicate changes in printer configuration values.
cbBuffer: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
pBuffer: A pointer that SHOULD be set to NULL when sent and MUST be ignored on receipt.
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 print client MUST validate parameters as follows:
Verify that the hNotify parameter is an RPC context handle to a notification object opened by calling RpcReplyOpenPrinter. If that verification fails, ERROR_INVALID_HANDLE MUST be returned. This method SHOULD assume that this handle can be used without further access checks.
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.
If the operation is successful, the client MUST send the received data to the caller that registered for the notifications, by calling RpcRemoteFindFirstPrinterChangeNotification (section 3.1.4.10.3) or RpcRemoteFindFirstPrinterChangeNotificationEx (section 3.1.4.10.4).