3.2.4.1.15 RawGetFileDataAsync (Opnum 15)

The RawGetFileDataAsync method is used instead of calling RawGetFileData multiple times to obtain file data. As specified in [MS-RPCE], the specification for asynchronous RPC, an RPC client pulls file data from the byte pipe until receiving an end-of-file notification from the pipe.

 DWORD RawGetFileDataAsync(
   [in] PFRS_SERVER_CONTEXT serverContext,
   [out] BYTE_PIPE* bytePipe
 );

serverContext: The context handle that represents the requested file replication operation. The client MUST specify a server context that was retrieved by a previously successful call to the InitializeFileTransferAsync method.

bytePipe: The asynchronous RPC byte pipe that contains returned file data.

Return Values: This method MUST return 0 on success or a nonzero error code on failure. For protocol purposes all nonzero values MUST be treated as equivalent failures unless otherwise specified.

Return value/code

Description

0x00000000

ERROR_SUCCESS

The method completed successfully.

0x00000057

ERROR_INVALID_PARAMETER

The context is invalid.

0x00002344

FRS_ERROR_CONTENTSET_NOT_FOUND

The content set was not found.

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

Validating the file transfer request: The server MUST validate the file transfer request by performing the same checks as the RawGetFileData method, except for the checks related to input parameters that exist in the RawGetFileData method, but not in the RawGetFileDataAsync method.

Actions Triggered: Upon successfully receiving the file transfer request, the server retrieves the entire file's marshaled data.

Remarks: The data stream returned by RawGetFileDataAsync is identical to the format of the data received by a single call to RawGetFileData if RawGetFileData is passed a buffer large enough to hold all the data returned by the pipe.