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 marshal de usuário tem uma cadeia de caracteres de formato semelhante a transmit_as:
FC_USER_MARSHAL
flags<1>
quadruple_index<2>
user_type_memory_size<2>
transmitted_type_buffer size<2>
offset_to_the_transmitted_type<2>
Os sinalizadores<1 byte> consistem na mordisca da bandeira superior e na mordisca de alinhamento inferior.
Os 2 bits superiores da mordisca do sinalizador são usados para descrever se o tipo de fio é definido como um ponteiro exclusivo, ponteiro de referência ou nenhum ponteiro (não pode ser um ptr). Os seguintes manifestos foram definidos para definir/obter os sinalizadores:
#define USER_MARSHAL_UNIQUE 0x80
#define USER_MARSHAL_REF 0x40
#define USER_MARSHAL_POINTER 0xc0 /* unique or ref */
#define USER_MARSHAL_IID 0x20 /* JIT compiler only */
A mordisca de alinhamento da palavra sinalizador mantém o alinhamento do fio do tipo transmitido.
O quadruple_index<2> é um índice da rotina de retorno de chamada quádruplo das funções marshal do usuário. As posições de rotina são as seguintes: dimensionamento, marshaling, unmarshaling e rotina de liberação.
O user_type_memory_size<2> fornece um tamanho para o tipo específico do usuário, incluindo tipos desconhecidos.
O transmitted_type_buffer_size<2> é zero quando o tamanho está variando ou o tamanho real fixo. Essa é uma otimização que permite que MIDL ignore retornos de chamada ao dimensionar o buffer e também ao liberar.
Gama
A verificação [intervalo] fornece meios adicionais para validação de argumento na camada NDR. O descritor [intervalo] tem o seguinte formato:
FC_RANGE, flags_type <1>
low value<4>
high value<4>
Os sinalizadores tomam a mordisca superior e o tipo de mordisca inferior do segundo byte. Os valores baixo e alto dependem do tipo da variável a ser verificada.
Os sinalizadores são destinados como um veículo de expansão; o compilador está definindo a mordisca como zero.