função MINIPORT_SYNCHRONOUS_OID_REQUEST (ndis.h)
O NDIS chama a função de retorno de chamada MiniportSynchronousOidRequest de um driver de miniport para emitir uma solicitação de OID síncrona.
Sintaxe
NDIS_STATUS MINIPORT_SYNCHRONOUS_OID_REQUEST(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] NDIS_OID_REQUEST *OidRequest
);
Parâmetros
[in] MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx. O driver de miniporto usa essa área de contexto para manter informações de estado para um adaptador de miniporto.
[in] OidRequest
Um ponteiro para uma estrutura de NDIS_OID_REQUEST que contém o buffer e o pacote de solicitação para o driver de miniporto a ser manipulado. Dependendo da solicitação, o driver retorna informações solicitadas na estrutura fornecida.
Valor de retorno
miniportSynchronousOidRequest pode retornar um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
|
O driver de miniporte definiu ou obteve os dados conforme solicitado. |
|
A solicitação que OidRequest especificada era inválida ou não reconhecida. |
|
A solicitação que OidRequest especificada foi reconhecida, mas o driver de miniporto não dá suporte a ele. |
|
O buffer que OidRequest suprimentos era muito pequeno para armazenar os dados solicitados. |
|
O valor especificado no InformationBufferLength membro da estrutura NDIS_OID_REQUEST em OidRequest está incorreto para o código dexxx OID_ especificado. |
|
Um ou mais dos parâmetros especificados para a solicitação em OidRequest eram inválidos. |
|
O driver de miniporto fornecerá um status de conclusão OID com uma indicação de status subsequente. Um driver de miniporto não pode retornar NDIS_STATUS_INDICATION_REQUIRED a menos que o OID específico o permita. Para determinar se esse status é permitido, consulte a página de referência OID. Para obter mais informações sobre NDIS_STATUS_INDICATION_REQUIRED, consulte NDIS_OID_REQUEST e NDIS_STATUS_INDICATION. |
|
Depois de chamar o
função MiniportDevicePnPEventNotify para indicar uma remoção surpresa, o NDIS chamou a função miniportHaltEx do driver. Se o driver recebeu solicitações OID antes das chamadas do NDIS MiniportHaltEx, ele deverá concluir imediatamente essas solicitações com um valor de status de NDIS_STATUS_NOT_ACCEPTED.
Os drivers de miniporto nem sempre são obrigados a retornar NDIS_STATUS_NOT_ACCEPTED para todos os OIDs após uma remoção surpresa, mas isso ajuda a explicar por que a chamada falhou. |
Observações
miniportSynchronousOidRequest é uma função opcional. Um driver de miniporto registrará essa função se ela manipular solicitações OID síncronas. O driver especifica o ponto de entrada MiniportSynchronousOidRequest quando chama a função NdisMRegisterMiniportDriver, usando o membro SynchronousOidRequestHandler da estrutura NDIS_MINIPORT_DRIVER_CHARACTERISTICS.
Os drivers de miniporto não devem retornar NDIS_STATUS_PENDING ou NDIS_STATUS_REQUEST_ABORTED de MiniportSynchronousOidRequest. Solicitações OID síncronas não podem ser pendentes ou canceladas.
Os drivers de miniport podem retornar NDIS_STATUS_NOT_ACCEPTED após chamadas NDIS MiniportDevicePnPEventNotify para notificar o driver sobre a remoção surpresa do dispositivo. No entanto, os drivers de miniporto ainda poderão concluir a solicitação de OID com um código de status diferente, se for possível fazer isso. Para obter mais informações, consulte a documentação específica de cada OID.
Espera-se que os drivers de miniporto preencham rapidamente solicitações OID síncronas sem bloquear, aguardar ou dormir. Solicitações OID síncronas são usadas apenas para operações de baixa latência, e os drivers de miniporto devem se esforçar para concluí-las dentro de vários milissegundos. A maioria das solicitações de OID é entregue a MiniportOidRequest, que tem permissão para aguardar ou aguardar por durações mais longas.
O NDIS não serializa solicitações OID síncronas entre si, em relação a outras solicitações de OID, em MiniportPause, em miniportResetExou em transições de energia. É responsabilidade do driver de miniporto implementar sua própria sincronização e falhar nas solicitações que são entregues em um momento em que a solicitação não pode ser tratada com êxito.
O NDIS serializa solicitações OID síncronas em MiniportHaltEx; O NDIS garante que nenhuma solicitação OID síncrona estará ativa quando miniportHaltEx for invocado.
Os drivers de miniport que implementam a Suspensão Seletiva do NDIS são incompatíveis com OIDs síncronos e não devem registrar um manipulador de MiniportSynchronousOidRequest.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10, versão 1709 |
da Plataforma de Destino | Windows |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |