3.1.4.2.22 RpcDeletePrinterDataEx (Opnum 81)

RpcDeletePrinterDataEx deletes a specified value from a printer's configuration data, which consists of a set of named and typed values stored in a hierarchy of registry keys.<306>

 DWORD RpcDeletePrinterDataEx(
   [in] PRINTER_HANDLE hPrinter,
   [in, string] const wchar_t* pKeyName,
   [in, string] const wchar_t* pValueName
 );

hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).

pKeyName: A pointer to a string that specifies the key containing the value to delete. A key name is an arbitrary string defined by the printer driver associated with the printer object. For rules governing key names, see section 2.2.4.7.

pValueName: A pointer to a string that identifies the configuration data to delete. For rules governing value names, see section 2.2.4.18.

The value name is an arbitrary string defined by the printer driver associated with the printer object. The value name "ChangeID"<307> is reserved by the protocol and SHOULD NOT be used in a call to RpcDeletePrinterDataEx.

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 validates parameters as follows:

  • The server MUST perform the validation steps that are specified in PRINTER_HANDLE Parameters (section 3.1.4.1.11),.

  • The server MUST verify that the pKeyName parameter points to a string that complies with the rules for key names specified in section 2.2.4.7. If this verification fails, return ERROR_INVALID_PARAMETER.

  • The server MAY verify that the pValueName parameter points to a string that complies with the rules specified in section 2.2.4.18.

  • Additional validation SHOULD<308> be performed.

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

  • Delete the printer data value indicated by the pKeyName and pValueName parameters.

  • Return the status of the operation.