Leer en inglés

Compartir a través de


Serialización de procedimientos

Cuando se usa la serialización de procedimientos, se etiqueta un procedimiento con el atributo [encode] o [decode]. En lugar de generar el código auxiliar remoto habitual, el compilador genera un código auxiliar de serialización para la rutina.

Al igual que un procedimiento remoto debe usar un identificador de enlace para realizar una llamada remota, un procedimiento de serialización debe usar un identificador de serialización para usar los servicios de serialización. Si no se especifica un identificador de serialización, se usa un identificador implícito predeterminado para dirigir la llamada. Por otro lado, si se especifica el identificador de serialización, ya sea como un argumento de handle_t explícito de la rutina o mediante el atributo [explicit_handle], debe pasar un identificador válido como argumento de la llamada. Para obtener información adicional sobre cómo crear un identificador de serialización válido, vea Identificadores de serialización, Ejemplos de codificación de búfer fijo y Ejemplos de codificación incremental.

Nota

Microsoft RPC permite mezclar procedimientos remotos y de serialización en una interfaz. Sin embargo, tenga cuidado al hacerlo.

En el caso de los procedimientos remotos con identificadores de enlace implícitos, el compilador MIDL genera una variable de identificador global de tipo handle_t. Los procedimientos y tipos con identificadores de serialización implícita usan esta misma variable de identificador global.

Para los identificadores implícitos, el identificador implícito global debe establecerse en un identificador de enlace válido antes de una llamada remota. El identificador implícito debe establecerse en un identificador de serialización válido antes de una llamada de serialización. Por lo tanto, un procedimiento no puede ser remoto y serializado. Debe ser uno u otro.