Combinando parâmetros de pipe e nonpipe
Quando você combina tipos de pipe e outros tipos em uma chamada de procedimento remoto, os dados são transmitidos de acordo com a direção do parâmetro:
- Na direção [in] , os dados de todos os argumentos de não pipe são transmitidos primeiro, seguidos por dados de pipe.
- Na direção [out] , o servidor envia os dados de pipe primeiro. Depois que a rotina do gerente é retornada, o servidor transmite os dados de nãopipe.
- Quando há argumentos de pipe [in,out] combinados com argumentos não pipe [in,out] , primeiro os dados de entrada são transmitidos em sua totalidade, conforme descrito anteriormente. Em seguida, os dados de saída são transmitidos conforme descrito anteriormente.
A seguinte restrição se aplica a essa implementação (MIDL 3.0) de pipes: quando você combina tipos de pipe e outros tipos em uma única chamada de procedimento remoto, os parâmetros de nãopipe devem ter um tamanho bem definido para permitir que o compilador MIDL calcule o tamanho do buffer necessário. Por exemplo, você não pode combinar parâmetros de pipe com um ponteiro [ exclusivo] ou uma estrutura compatível, pois seus tamanhos não podem ser determinados em tempo de compilação.
Tópicos relacionados