Comutador /protocol
A opção /protocol especifica qual protocolo de transmissão é compatível com o stub gerado.
midl /protocol (dce | ndr64 | all)
-
Dce
-
O stub gerado dá suporte apenas ao protocolo DCE.
-
ndr64
-
O stub gerado dá suporte apenas ao protocolo NDR64 da Microsoft.
-
Todos
-
O stub gerado dá suporte a todos os protocolos disponíveis para um determinado ambiente.
O RPC realiza marshals e desmarca dados de acordo com um protocolo de transmissão estrito, também chamado de sintaxe de transferência, que define a representação de transmissão de dados, como a ordem em que os membros de dados são empacotados, o alinhamento dos dados na transmissão, informações adicionais incluídas com os dados, entre outros. O Microsoft RPC é compatível com o protocolo NDR (representação de dados de rede) do OSF DCE. Na versão de 64 bits do Windows XP, a Microsoft apresenta um protocolo experimental NDR64 otimizado para transferir dados de 64 bits. O NDR64 não é compatível com versões anteriores com o protocolo DCE.
O protocolo dce é compatível com a sintaxe de transferência NDR do OSF DCE. Esse protocolo é otimizado para transferir dados de 32 bits.
Atualmente, há suporte para o protocolo ndr64 somente quando usado em conjunto com a opção /win64 . Se um cliente somente ndr64 tentar se conectar a um servidor somente dce ou vice-versa, a chamada será rejeitada com RPC_S_UNSUPPORTED_TRANS_SYN.
A opção all cria um stub que pode usar qualquer protocolo disponível. Para stubs de 32 bits, o único protocolo disponível atualmente é o DCE. Para stubs de 64 bits, criados usando a opção /win64 , DCE e NDR64 estão disponíveis.
midl /protocol all /win64 filename.idl