Compartilhar via


NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa macro define o _MediaSpecificInformation ponteiro e o _SizeMediaSpecificInfo valor em de Out - Of - bloco de dados banda (OOB) associado com um descritor pacote especificado.

Syntax

VOID NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(
  PNDIS_PACKET _Packet,
  PVOID _MediaSpecificInfo,
  UINT _SizeMediaSpecificInfo
);

Parameters

  • _Packet
    Ponteiro para um descritor pacote driver-allocated.
  • _MediaSpecificInfo
    Ponteiro para uma reserva Caller-supplied contendo informações Medium-specific, such as prioridade, seja definido no pacote de MediaSpecificInformation membro das NDIS_PACKET_OOB_DATA estrutura associado com o descritor pacote especificado. Esse parâmetro não pode ser NULL.
  • _SizeMediaSpecificInfo
    Especifica o número de bytes de informações fornecidas pelo MediaSpecificInformation membro. Este parâmetro não pode ser 0.

Remarks

Dependendo de mídia, um subjacente driver pode definir esses membros com essa macro em blocos de dados OOB associado com descritores de pacote que ele aloca para recebe indicações. Quando um ligado protocolo é chamado com a indicação, ele usa o NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO macro para acessar as informações fornecidas.

Dependendo de médio porte do subjacente driver ao qual ele está ligado, poderá definir um protocolo MediaSpecificInformation e SizeMediaSpecificInfo em blocos de OOB associado com descritores de pacote que ele aloca para envia. O subjacente driver usa NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO Para acessar as informações fornecidas.

Em ambos os maiúsculas e minúsculas, enquanto um protocolo de nível superior está consumindo uma indicação de recebimento ou um inferior-nível é miniporta processamento um envio, esse driver precisa acessar exclusivo para a reserva em _MediaSpecificInformation. Essa restrição indica o seguinte:

  • Uma miniporta não é possível acessar a reserva que ele define o Backup com out - of - banda informações quando o NdisMIndicateReceivePacket função retorna controle se NDIS_STATUS_PENDING é definida na Status membro do associado estrutura. A driver usa NDIS_GET_PACKET_STATUS Para determinar se cada pacote na matriz de pacote que ele apenas indicado tem esse status definido ou tenha sido retornado com NDIS_STATUS_SUCCESS.
  • Um driver protocolo não é possível acessar a reserva que ele configurou com out - of - informações banda para um envio ou nada na estrutura associado com um descritor pacote que ela passa para o NdisSend função, até que o descritor pacote é retornado ao seu ProtocolSendComplete função.
    Porque NDIS filas enviar pacotes e reenviando-los se o MiniportSend função retorna NDIS_STATUS_RESOURCES para a Status de um pacote em uma matriz enviado, o status final de cada pacote em um envio (matriz) é volátil até que esse pacote foi retornado para ProtocolSendComplete.

Um driver protocolo pode chamar o NdisQueryReceiveInformation função para obter um copiar das NDIS_PACKET_OOB_DATA estrutura associado com um descritor pacote quando seus ProtocolReceive função é fornecida uma indicação. No entanto, esse chamar é supérfluas se o protocolo é ligado a um subjacente driver que não fornecer saída - de - banda informações com seus indicações.

O NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO macro é definido como a seguir.

#define NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(_Packet,                    \
                                            _MediaSpecificInfo,         \
                                            _SizeMediaSpecificInfo)     \
{                                                                       \
    if ((_Packet)->Private.NdisPacketFlags & fPACKET_ALLOCATED_BY_NDIS) \
    {                                                                   \
        (_Packet)->Private.NdisPacketFlags |= fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO;\
        ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) +                    \
                                          (_Packet)->Private.NdisPacketOobOffset))->MediaSpecificInformation = (_MediaSpecificInfo);\
        ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) +                    \
                                          (_Packet)->Private.NdisPacketOobOffset))->SizeMediaSpecificInfo = (_SizeMediaSpecificInfo);\
    }                                                                   \
}

Requirements

Header ndis.h
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

MediaSpecificInformation
MiniportSend
NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO
NDIS_GET_PACKET_STATUS
NdisMIndicateReceivePacket
NDIS_PACKET_OOB_DATA
NdisSend
ProtocolReceive
ProtocolSendComplete