Função NdisRequest (ndis.h)
Observação NDIS 5. x foi preterido e substituído pelo NDIS 6. x. Para obter um novo desenvolvimento de driver NDIS, consulte Drivers de Rede começando com o Windows Vista. Para obter informações sobre como portar o NDIS 5. x drivers para o NDIS 6. x, consulte portabilidade de drivers NDIS 5.x para NDIS 6.0.
NdisRequest encaminha uma solicitação para o driver subjacente para que ele consulte os recursos ou o status de sua NIC ou que ele defina o estado de sua NIC.
Sintaxe
void NdisRequest(
[out] PNDIS_STATUS Status,
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_REQUEST NdisRequest
);
Parâmetros
[out] Status
Ponteiro para uma variável fornecida pelo chamador que é definida no retorno dessa função. O driver subjacente determina qual NDIS_STATUS_ XXX é retornado, mas geralmente é um dos seguintes valores:
NDIS_STATUS_SUCCESS
A operação solicitada foi concluída com êxito.NDIS_STATUS_PENDING
A solicitação está sendo tratada de forma assíncrona e a função ProtocolRequestComplete do chamador será chamada quando for concluída.NDIS_STATUS_INVALID_OID
O código deXXX OID_ especificado no Oid membro do buffer estruturado NDIS_REQUEST em NdisRequest é inválido ou sem suporte pelo driver subjacente.NDIS_STATUS_INVALID_LENGTH ou NDIS_STATUS_BUFFER_TOO_SHORT
O valor especificado no InformationBufferLength membro do buffer estruturado em NDIS_REQUEST em NdisRequest não corresponde aos requisitos para o código deXXX de OID_ fornecido. Se o buffer de informações for muito pequeno, o membro bytesNeeded conterá o valor correto para InformationBufferLength no retorno de NdisRequest.NDIS_STATUS_INVALID_DATA
Os dados fornecidos em do InformationBuffer na estrutura de NDIS_REQUEST fornecida são inválidos para o código deXXX OID_ fornecido.NDIS_STATUS_NOT_SUPPORTED ou NDIS_STATUS_NOT_RECOGNIZED
O driver subjacente não dá suporte à operação solicitada.NDIS_STATUS_RESOURCES
A solicitação não pôde ser atendida devido a uma escassez de recursos. Normalmente, esse retorno indica que uma tentativa de alocar memória não teve êxito, mas não indica necessariamente que a mesma solicitação, enviada posteriormente, falhará pelo mesmo motivo.NDIS_STATUS_NOT_ACCEPTED
O driver subjacente tentou a operação solicitada, geralmente um conjunto, em sua NIC, mas falhou com o netcard. Por exemplo, uma tentativa de definir muitos endereços multicast pode causar o retorno desse valor.NDIS_STATUS_CLOSING ou NDIS_STATUS_CLOSING_INDICATING
O driver subjacente falhou na operação solicitada porque um fechamento está em andamento.NDIS_STATUS_RESET_IN_PROGRESS
O driver NIC subjacente não pode atender à solicitação no momento porque ele está redefinindo o netcard no momento. A função ProtocolStatus do chamador foi ou será chamada com NDIS_STATUS_RESET_START para indicar que uma redefinição está em andamento. Esse valor retornado não indica necessariamente que a mesma solicitação, enviada posteriormente, falhará pelo mesmo motivo.NDIS_STATUS_FAILURE
Esse valor geralmente é um padrão não específico, retornado quando nenhum dos NDIS_STATUS_XXX mais específicos fez com que o driver subjacente falhasse na solicitação.
[in] NdisBindingHandle
Especifica o identificador retornado por NdisOpenAdapter que identifica a NIC de destino ou o adaptador virtual do driver inferior ao qual o chamador está associado.
[in] NdisRequest
Ponteiro para uma estrutura em buffer especificando a operação solicitada com uma determinada OID_ código XXX para uma consulta ou um conjunto.
Valor de retorno
Nenhum
Observações
Um driver de protocolo deve alocar memória suficiente para o buffer de informações associado ao OID_ XXX da operação que ele solicitará. O driver também deve alocar e configurar o buffer em NdisRequest antes de chamar NdisRequest. Ambos os buffers devem ser alocados do pool nãopagado porque o driver subjacente é executado no IRQL gerado durante o processamento da solicitação.
Para chamadores em camadas acima de um driver NDIS intermediário, NdisRequest encaminha uma solicitação para o driver inferior seguinte para que ele retorne informações sobre seus próprios recursos ou direcione esse driver para lidar com funcionalidades específicas de maneira determinada pelo chamador. Se o driver inferior seguinte for um driver intermediário do NDIS, ele poderá chamar NdisRequest com uma solicitação específica de OID própria antes de concluir a solicitação originalmente enviada pelo protocolo de nível superior.
Alguns erros retornados no Status são recuperáveis, incluindo o seguinte:
NDIS_STATUS_INVALID_OID
NDIS_STATUS_INVALID_LENGTH
NDIS_STATUS_BUFFER_TOO_SHORT
NDIS_STATUS_INVALID_DATA
NDIS_STATUS_RESOURCES
NDIS_STATUS_RESET_IN_PROGRESS
Ou seja, um driver pode modificar o pacote em NdisRequest adequadamente para corrigir o código deXXX OID_ e/ou o tamanho ou o conteúdo do buffer em do InformationBuffer e reenviar o pacote de solicitação para NdisRequest. O mesmo pacote poderá ser atendido na reenviação para NdisRequest se a chamada original indicasse uma redefinição em andamento ou se uma falta de recursos, que poderia ser temporária, impedisse que essa solicitação fosse realizada.
A biblioteca NDIS mantém associações para drivers de miniportos subjacentes. O NDIS pode retornar informações para consultas específicas de associação se uma determinada OID estiver associada a um tipo médio definido pelo sistema para o qual o sistema fornece uma biblioteca de filtros.
Para obter mais informações sobre os OIDs gerais e específicos da mídia e seus respectivos buffers de informações associados, consulte identificadores de objeto NDIS.
- Plataforma de destino: Universal
- Versão: Não há suporte para drivers NDIS 6.0 no Windows Vista. Use NdisOidRequest. Com suporte para drivers NDIS 5.1 no Windows Vista e no Windows XP.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |
Consulte também
- MiniportQueryInformation
- miniportSetInformation
- NdisOpenAdapter
- NDIS_REQUEST
- ProtocolRequestComplete
- ProtocolStatus