Compartilhar via


NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa macro retorna o MediaSpecificInformation ponteiro e o SizeMediaSpecificInfo valor de Out - Of - bloco de dados banda associado com um descritor determinado pacote.

Syntax

VOID NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(
  PNDIS_PACKET _Packet,
  PPVOID _pMediaSpecificInfo,
  PUINT _pSizeMediaSpecificInfo
);

Parameters

  • _Packet
    Aponta para um descritor pacote.
  • _pMediaSpecificInfo
    Aponta para um chamador forneceu variável que essa macro define como o MediaSpecificInformation ponteiro. O endereço retornado oferece a acessar chamador a qualquer armazenada em buffer out - de - informações banda, such as prioridade pacote, associado com a rede especificada pacote indicado ou para serem transmitidos.
  • _pSizeMediaSpecificInfo
    Aponta para uma variável Caller-supplied que essa macro define como o SizeMediaSpecificInfo valor, que especifica o tamanho em bytes da reserva em MediaSpecificInformation.

Return Value

Nenhum.

Remarks

NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO Retorna um NULL ponteiro no pMediaSpecificInfo e 0 em pSizeMediaSpecificInfo Se não houver nenhum informações Media-specific na NDIS_PACKET_OOB_DATA bloco associado com o descritor determinado pacote.

Dependendo de mídia, uma miniporta NIC pode definir esses membros com NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO o out - of - blocos dados banda associado com descritores de pacote que ele aloca para recebe indicações.

Dependendo de médio porte do subjacente driver ao qual ele está ligado, poderá definir um protocolo MediaSpecificInformation e SizeMediaSpecificInfo de Out - Of - blocos banda associado com descritores de pacote ele aloca para envia.

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-la configurado com informações Media-specific quando NdisMIndicateReceivePacket Retorna se NDIS_STATUS_PENDING é definida no controle a Status membro do associado out - de - bloco banda. O driver pode usar NDIS_GET_PACKET_STATUS Para determinar se cada pacote na matriz de pacote 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 informações Media-specific-la configurado para um envio, nem tudo em de Out - Of - bloco de dados banda associado com um descritor pacote transmiti-la para NdisSendPackets Ou NdisSend, 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 ou se a MiniportSendPackets função define NDIS_STATUS_RESOURCES para a Status de um pacote em uma matriz enviado, o status final de cada pacote em uma matriz de envio é volátil até que esse pacote foi retornado para ProtocolSendComplete.

Um driver protocolo pode chamar NdisGetReceivedPacket seguido por NDIS_GET_ORIGINAL_PACKET Para obter esse informações a partir de NDIS_PACKET_OOB_DATA bloco associado com um descritor pacote quando seus ProtocolReceive função é fornecida uma indicação. No entanto, essas chamadas são 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_GET_PACKET_MEDIA_SPECIFIC_INFO macro é definido como a seguir.

#define NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(_Packet,                    \
                                            _pMediaSpecificInfo,        \
                                            _pSizeMediaSpecificInfo)    \
{                                                                       \
    if (!((_Packet)->Private.NdisPacketFlags & fPACKET_ALLOCATED_BY_NDIS) ||\
        !((_Packet)->Private.NdisPacketFlags & fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO))\
    {                                                                   \
        *(_pMediaSpecificInfo) = NULL;                                  \
        *(_pSizeMediaSpecificInfo) = 0;                                 \
    }                                                                   \
    else                                                                \
    {                                                                   \
        *(_pMediaSpecificInfo) =((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) +\
                    (_Packet)->Private.NdisPacketOobOffset))->MediaSpecificInformation;\
        *(_pSizeMediaSpecificInfo) = ((PNDIS_PACKET_OOB_DATA)((PUCHAR)(_Packet) +\
                    (_Packet)->Private.NdisPacketOobOffset))->SizeMediaSpecificInfo;\
    }                                                                   \
}

Requirements

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

See Also

Reference

MediaSpecificInformation
MiniportHandleInterrupt
MiniportSend
MiniportSendPackets
NDIS_GET_ORIGINAL_PACKET
NDIS_GET_PACKET_STATUS
NDIS_OOB_DATA_FROM_PACKET
NDIS_PACKET_OOB_DATA
NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO
NdisAllocatePacket
NdisGetReceivedPacket
NdisMIndicateReceivePacket
NdisSend
NdisSendPackets
ProtocolReceive
ProtocolReceivePacket
ProtocolSendComplete