3.1.4.32 RRPC_FWEnumProducts (Opnum 31)

The RRPC_FWEnumProducts (Opnum 31) method requests the server to return all the registered third-party software components registered with the firewall and advanced security component. The only method supported is binary version 0x020A.

 unsigned long RRPC_FWEnumProducts(
   [in] FW_CONN_HANDLE rpcConnHandle,
   [in] FW_POLICY_STORE_HANDLE hPolicy,
   [out] unsigned long* pdwNumProducts,
   [out, size_is(,*pdwNumProducts)] 
     PFW_PRODUCT* ppProducts
 );

rpcConnHandle: This parameter is an RPC binding handle that connects to the RPC interface of the Firewall and Advanced Security Protocol.

hPolicy: This input parameter is an FW_POLICY_STORE_HANDLE data type. The data type MUST contain an opened policy store handle, successfully opened with the RRPC_FWOpenPolicyStore (Opnum 0) method. This handle MUST be of the FW_STORE_TYPE_DYNAMIC store.

pdwNumProducts: This is an output parameter that on success MUST be equal to the number of products returned.

ppProducts: An array of FW_PRODUCT data types, representing the registration of third-party software components.

Return Values: The method returns 0 if successful; if it fails, it returns a nonzero error code. The field can take any specific error code value, as specified in [MS-ERREF]. The following return values are common.

Return value/code

Description

0x00000005

ERROR_ACCESS_DENIED

The client does not have the required credentials to call the method.

0x00000032

ERROR_NOT_SUPPORTED

The store handle is not of the dynamic store.

0x00000057

ERROR_INVALID_PARAMETER

One of the parameters of this method either is incorrect or is required and not specified.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE]. If any lower-layer errors are reported by RPC exception, this exception is converted to an error code and reported to higher-layer protocols via the return value.

The server MUST validate that the client is authorized to perform the requested operation (as defined in section 3.1.4) before executing this method.