3.2.4.3 NtFrsApi_Rpc_InfoW (Opnum 7)

The NtFrsApi_Rpc_InfoW method MUST return internal information. The method is not used in server-to-server interoperation. The vendor MUST fill the BLOB with implementation-dependent data structures.

 unsigned long NtFrsApi_Rpc_InfoW(
   [in] handle_t Handle,
   [in, range(0,65536)] unsigned long BlobSize,
   [in, out, size_is(BlobSize), unique] 
     unsigned char* Blob
 );

Handle: Binding handle obtained when the partner authenticates with the file replication service (FRS).

BlobSize: The size of the Blob parameter in bytes. MUST be one of the following values, to fit the returned information in the Blob.

Value

Meaning

NTFRSAPI_DEFAULT_INFO_SIZE

(64 * 1024)

Default info size.

NTFRSAPI_MINIMUM_INFO_SIZE

( 1 * 1024)

Minimum info size.

Blob: Custom binary format object that contains internal information about FRS. Vendors MUST choose their own implementation-dependent data structures for the Blob parameter to dump debug/tracing-related information. This protocol does not require a specific format for the information in this BLOB. This structure is not used for server-to-server interoperation, and the vendor can fill the BLOB with implementation-dependent data structures.<60><61>

Return Values: The method MUST return 0 on success or a nonzero error code on failure. All nonzero values MUST be treated as equivalent failures unless otherwise specified.

Return value/code

Description

0x00000000

ERROR_SUCCESS

The method completed successfully.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].

Validating the _NtFrsApi_Rpc_InfoW request: The server must validate the NtFrsApi_Rpc_InfoWrequest request by performing the following checks.

  • If IsGetInfoWAccessCheckEnabled is set to "None", the server MUST fail the call with an implementation specific value.

  • If IsGetInfoWAccessCheckEnabled is set to "Disabled", the server MUST process the request without performing an access check.

  • If IsGetInfoWAccessCheckEnabled is set to "Enabled", the server MUST check whether the calling client is authorized to perform that function. If the calling client is not authorized to perform that function, it MUST return ERROR_NOT_AUTHENTICATED.

  • If GetInfoWAccessRequired is set to "None", the server MUST fail the call with an implementation specific value.

  • If GetInfoWAccessRequired is set to "Read", the server MUST check whether the caller has read access. If the caller does not have read access, the server MUST return FRS_ERR_INSUFFICIENT_PRIV.

  • If GetInfoWAccessRequired is set to "Write", the server MUST check whether the caller has write access. If the caller does not have read access, the server MUST return FRS_ERR_INSUFFICIENT_PRIV.

  • If the server is not able to verify the parameters inside blob, then it MUST fail the call with an implementation-defined failure value FRS_ERR_INVALID_SERVICE_PARAMETER.

Actions Triggered:  FRS MUST return the internal information about FRS. The information returned MUST be used for dumping FRS internal implementation-specific information for debugging purposes. It MUST NOT be used in initial sync, normal sync, or in any way that affects the FRS Protocol behavior. The vendor can implement this RPC call to dump the vendor's implementation specific info. However, the structure of this information is implementation-specific and has no bearing on the operations of the protocol. <62>