KSTOPOLOGY_CONNECTION estrutura (ks.h)
A estrutura KSTOPOLOGY_CONNECTION descreve uma única conexão de caminho de dados dentro de um filtro de streaming de kernel.
PCCONNECTION_DESCRIPTOR é um alias para KSTOPOLOGY_CONNECTION.
Sintaxe
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
Membros
FromNode
Especifica a ID do nó do nó na extremidade upstream da conexão. Se esse final da conexão for um pin externo no filtro, não um pino lógico em um nó, defina esse membro como o valor nulo do nó-ID, KSFILTER_NODE.
FromNodePin
Especifica a ID do pino para o final upstream da conexão. Se **FromNode **for KSFILTER_NODE, o pino nessa extremidade da conexão será um pino externo no filtro. Caso contrário, o pino nessa extremidade é um pino lógico em um nó interno.
ToNode
Especifica a ID do nó no final downstream da conexão. Se esse final da conexão for um pino externo no filtro, não um pino lógico em um nó, defina esse membro como o valor nulo de ID do nó, KSFILTER_NODE.
ToNodePin
Especifica a ID do pino para o final downstream da conexão. Se ToNode for KSFILTER_NODE, o pino nessa extremidade da conexão será um pino externo no filtro. Caso contrário, o pino nessa extremidade é um pino lógico em um nó interno.
Observações
KSTOPOLOGY_CONNECTION representa uma única conexão dentro de um filtro, entre pinos externos, nós internos ou um pin externo e um nó interno.
Um driver de streaming retorna uma matriz de estruturas de KSTOPOLOGY_CONNECTION em resposta a uma solicitação de propriedade de obtenção KSPROPERTY_TOPOLOGY_CONNECTIONS.
Ao representar uma conexão entre dois pinos externos, FromNode e ToNode devem ser definidos como KSFILTER_NODE e o FromNodePin e ToNodePin deve ser a ID do tipo pin dos respectivos pinos. Consulte KSPROPSETID_Pin para obter uma descrição das IDs de tipo de pino.
Caso contrário, FromNodePin ou ToNodePin representar um pin de entrada ou saída lógico para a conexão. Os números de pino lógico são usados apenas para descrever uma conexão entre nós; eles não têm nenhuma existência fora da propriedade KSPROPERTY_TOPOLOGY_CONNECTIONS.
PCCONNECTION_DESCRIPTOR
O nome da estrutura PCCONNECTION_DESCRIPTOR é um alias para KSTOPOLOGY_CONNECTION. PCCONNECTION_DESCRIPTOR para IMiniport::GetDescription() é uma descrição de uma conexão de nó na topologia do filtro implementado pelo miniporto. Ele é definido da seguinte maneira no cabeçalho portcls.h:
typedef KSTOPOLOGY_CONNECTION PCCONNECTION_DESCRIPTOR, *PPCCONNECTION_DESCRIPTOR;
Observe que, para as descrições de parâmetro, o PCFILTER_NODE é usado com PCCONNECTION_DESCRIPTOR em vez de KSFILTER_NODE.
A estrutura PCCONNECTION_DESCRIPTOR especifica uma única conexão dentro de um filtro. A conexão pode ser uma das seguintes:
Uma conexão entre dois nós internos
Uma conexão entre um nó interno e um pino no filtro
Uma conexão entre dois pinos no filtro
O último tipo de conexão ocorre quando um pino de entrada em um filtro transmite dados diretamente para um pino de saída no mesmo filtro.
Um driver de adaptador usa uma matriz de estruturas para especificar a topologia interna de um filtro.
O fluxo de dados flui do FromNode final para o ToNode final da conexão.
Para usar a estrutura PCCONNECTION_DESCRIPTOR, o gravador de driver atribui pinos "lógicos" aos nós dentro do filtro. Esses "pinos" são pontos de conexão nos nós e são análogos aos pinos externos que o filtro usa para se conectar a outros filtros. No entanto, os pinos lógicos em nós são usados apenas para especificar as conexões dentro do filtro.
Um nó simples com uma única entrada e uma única saída normalmente numera seus pinos de entrada e saída um e zero, respectivamente. Por convenção, essa numeração é baseada na direção do fluxo IRP em vez do fluxo de dados.
Nós mais complexos podem exigir IDs de pino padronizadas para permitir que os clientes determinem com mais facilidade a atribuição de funções a pinos específicos. Por exemplo, o nó KSNODETYPE_ACOUSTIC_ECHO_CANCEL usa IDs padronizadas para seus quatro pinos.
Quando o pino em uma extremidade de uma conexão for um pino de entrada ou saída no filtro em vez de um pino lógico em um nó, defina o FromNode ou membro ToNode (dependendo de qual extremidade da conexão você está especificando) para o valor nulo de ID de nó, PCFILTER_NODE.
Evite pins lógicos confusos, que são usados apenas para descrever pontos de conexão em nós dentro de um filtro, com os pinos externos que os filtros usam para se conectar a outros filtros. Os pinos lógicos raramente são usados fora da estrutura PCCONNECTION_DESCRIPTOR. Neste documento, o termo fixar refere-se a um pino em um filtro KS em vez de um pino lógico em um nó, a menos que seja observado o contrário.
O método IMiniport::GetDescription gera uma estrutura PCFILTER_DESCRIPTOR que contém um ponteiro para uma matriz de PCCONNECTION_DESCRIPTOR.
Para obter um exemplo de código simples que mostra como a estrutura de PCCONNECTION_DESCRIPTOR é usada, consulte Expondo a topologia de filtro.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ks.h (incluir Ks.h) |
Consulte também
BdaPropertyTemplateConnections