Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O cabeçalho foi estendido várias vezes ao longo da vida útil do mecanismo NDR. O compilador atual ainda gera cabeçalhos diferentes dependendo do modo do compilador. No entanto, cabeçalhos mais recentes são um superconjunto dos mais antigos.
O cabeçalho –Oi antigo
O cabeçalho tem o seguinte formato:
handle_type<1>
Oi_flags<1>
[rpc_flags<4>]
proc_num<2>
stack_size<2>
[explicit_handle_description<>]
Onde handle_type<1> pode ser um dos valores mostrados na tabela a seguir.
| Enfeitiçar | Manejar |
|---|---|
| 31 | FC_BIND_GENERIC |
| 32 | FC_BIND_PRIMITIVE |
| 33 | FC_AUTO_HANDLE |
| 34 | FC_CALLBACK_HANDLE |
| 0 | (identificador explícito) |
Se o campo handle_type<1> não for zero, o procedimento usará um identificador implícito do tipo indicado. Consulte o tópico Handles para obter mais informações. Se o campo handle_type<1> for zero, o identificador usado para associação será um dos parâmetros do procedimento.
Identificadores explícitos podem ser primitivos, genéricos e contexto; o último tem o token FC a seguir.
| Enfeitiçar | Manejar |
|---|---|
| 30 | FC_BIND_CONTEXT |
Por convenção, o tipo de identificador para interfaces DCOM é FC_AUTO_HANDLE.
O campo Oi_flags<1> é uma máscara de 8 bits dos sinalizadores a seguir.
| Enfeitiçar | Bandeira | Significado |
|---|---|---|
| 01 | Oi_FULL_PTR_USED | Usa o pacote de ponteiro completo. |
| 02 | Oi_RPCSS_ALLOC_USED | Usa o pacote de memória RpcSs. |
| 04 | Oi_OBJECT_PROC | Um procedimento em uma interface de objeto. |
| 08 | Oi_HAS_RPCFLAGS | O procedimento tem sinalizadores Rpc não zero. |
| 10 | Oi_* | Sobrecarregado. |
| 20 | Oi_* | Sobrecarregado. |
| 40 | Oi_USE_NEW_INIT_ROUTINES | Usa rotinas de inicialização do Windows NT3.5 Beta2+. |
| 80 | Utilizadas. |
Os sinalizadores a seguir estão sobrecarregados.
| Enfeitiçar | Bandeira | Significado |
|---|---|---|
| 10 | ENCODE_IS_USED | Usado somente em pickling. |
| 20 | DECODE_IS_USED | Usado somente em pickling. |
| 10 | Oi_IGNORE_OBJECT_EXCEPTION_HANDLING | Não usado mais (antigo OLE). |
| 20 | Oi_HAS_COMM_OR_FAULT | Somente em RPC bruto, [comm _, fault_status]. |
| 20 | Oi_OBJ_USE_V2_INTERPRETER | Somente no DCOM, use –Oif interpretador. |
O campo rpc_flags<4> descreve como definir o campo RpcFlags da estrutura RPC_MESSAGE. Esse campo só estará presente se o campo Oi_flags<1> tiver Oi_HAD_RPCFLAGS definido. Se esse campo não estiver presente, os sinalizadores RPC para o procedimento remoto serão zero.
Nota
Para obter desempenho, os interpretadores assíncronos sempre têm o campo rpc_flags<4> presente.
O campo proc_num<2> fornece o número do procedimento.
O stack_size<2> fornece o tamanho total de todos os parâmetros na pilha, incluindo qualquer ponteiro e/ou valor retornado.
O campo explicit_handle_description<> é descrito posteriormente neste documento. Esse campo não estará presente se o procedimento usar um identificador implícito.