Partilhar via


Serialização de procedimento

Quando você usa a serialização de procedimento, um procedimento é rotulado com o atributo [codificar] ou [decodificar]. Em vez de gerar o stub remoto usual, o compilador gera um stub de serialização para a rotina.

Assim como um procedimento remoto deve usar um identificador de associação para fazer uma chamada remota, um procedimento de serialização deve usar um identificador de serialização para usar serviços de serialização. Se um identificador de serialização não for especificado, um identificador implícito padrão será usado para direcionar a chamada. Por outro lado, se o identificador de serialização for especificado, seja como um argumento handle_t explícito da rotina ou usando o atributo [explicit_handle], você deverá passar um identificador válido como um argumento da chamada. Para obter informações adicionais sobre como criar um identificador de serialização válido, consulte Serialization Handles, Examples of Fixed Buffer Encodinge Examples of Incremental Encoding.

Observação

O Microsoft RPC permite que os procedimentos remotos e de serialização sejam misturados em uma interface. No entanto, tenha cuidado ao fazê-lo.

Para procedimentos remotos com identificadores de ligação implícitos, o compilador MIDL gera uma variável de identificador global do tipo handle_t. Procedimentos e tipos com identificadores de serialização implícita usam essa mesma variável de identificador global.

Para identificadores implícitos, o identificador implícito global deve ser definido como um identificador de vinculação válido antes de uma chamada remota. O identificador implícito deve ser definido como um identificador de serialização válido antes de uma chamada de serialização. Portanto, um procedimento não pode ser remoto e serializado. Tem de ser um ou outro.