Serialização de procedimento

Quando você usa a serialização de procedimento, um procedimento é rotulado com o atributo [codificação] ou [decodificação]. 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, 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 Identificadores de serialização, exemplos de codificação de buffer fixo e Exemplos de codificação incremental.

Observação

O Microsoft RPC permite que procedimentos remotos e de serialização sejam misturados em uma interface. No entanto, tenha cuidado ao fazer isso.

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

Para identificadores implícitos, o identificador implícito global deve ser definido como um identificador de associaçã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. Deve ser um ou outro.