função FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE (ndis.h)

O NDIS chama a função FilterSynchronousOidRequestComplete de um driver de filtro depois que uma solicitação OID síncrona foi concluída de um driver subjacente.

Essa função tem suporte no NDIS 6.81 e posterior.

Sintaxe

void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
  [in]      NDIS_HANDLE      FilterModuleContext,
  [in, out] NDIS_OID_REQUEST *OidRequest,
  [in, out] NDIS_STATUS      *Status,
  [in]      PVOID            CallContext
);

Parâmetros

[in] FilterModuleContext

Um identificador para a área de contexto do módulo de filtro que é o destino dessa solicitação. O driver de filtro criou e inicializou essa área de contexto na função FilterAttach .

[in, out] OidRequest

Um ponteiro para uma estrutura NDIS_OID_REQUEST que especifica a operação que está sendo concluída.

[in, out] Status

Um ponteiro para o código status resultante da solicitação que está sendo concluída.

[in] CallContext

Um slot de armazenamento do tamanho de PVOID para o driver de filtro compartilhar o estado entre seus manipuladores FilterSynchronousOidRequest e FilterSynchronousOidRequestComplete . Se o driver de filtro implementar um manipulador FilterSynchronousOidRequest , esse parâmetro conterá o valor de contexto retornado pelo manipulador FilterSynchronousOidRequest . Caso contrário, se o driver de filtro não implementar um manipulador FilterSynchronousOidRequest , esse valor será zero.

Retornar valor

Nenhum

Comentários

FilterSynchronousOidRequestComplete é uma função opcional. Se um driver de filtro não precisar observar ou modificar solicitações OID síncronas concluídas do driver de miniporto, o driver de filtro deverá definir o ponto de entrada dessa função como NULL quando chamar NdisFRegisterFilterDriver.

O NDIS chama a função FilterSynchronousOidRequestComplete do driver de filtro para processar solicitações OID síncronas que são concluídas por drivers subjacentes. Os drivers de filtro podem ler ou modificar alguns campos na estrutura NDIS_OID_REQUEST da seguinte maneira:

Campo Filtrar acesso
parâmetro Somente leitura
RequestType Leitura/gravação
PortNumber Leitura/gravação
Tempo limite Não acessar
RequestId Não acessar
RequestHandle Leitura/gravação
DATA Leitura/gravação
NdisReserved Não acessar
MiniportReserved Não acessar
SourceReserved Não acessar
SupportedRevision Leitura/gravação
Reservado1, Reservado2 Não acessar
SwitchId Leitura/gravação
VPortId Leitura/gravação
Flags Leitura/gravação

Além de modificar a estrutura NDIS_OID_REQUEST, os drivers de filtro podem ler ou modificar o código status com o qual a operação foi concluída. O driver de filtro pode gravar um novo valor no parâmetro *Status . Os drivers de filtro não devem gravar NDIS_STATUS_PENDING ou NDIS_STATUS_ALREADY_COMPLETE no parâmetro *Status .

Se o driver de filtro também registrar um manipulador FilterSynchronousOidRequest , o NDIS garantirá que o manipulador FilterSynchronousOidRequestComplete será chamado se e somente se o manipulador FilterSynchronousOidRequest retornar NDIS_STATUS_SUCCESS.

Espera-se que os drivers de filtro retornem do manipulador FilterSynchronousOidRequestComplete rapidamente, sem bloquear, esperar ou dormir. As solicitações OID síncronas são usadas apenas para operações de baixa latência, e os drivers de filtro devem se esforçar para continuar ou concluí-las em vários milissegundos.

O NDIS não serializa solicitações OID síncronas entre si, em relação a outras solicitações OID ou em FilterPause. É responsabilidade do driver de filtro implementar qualquer sincronização necessária.

O NDIS serializa solicitações OID síncronas em FilterDetach: o NDIS garante que nenhuma solicitação OID síncrona estará ativa quando FilterDetach for invocado.

Os drivers de filtro não devem chamar NdisAllocateCloneOidRequest ou NdisCancelOidRequest em uma solicitação OID síncrona. Os drivers de filtro não devem chamar NdisFSynchronousOidRequest em uma solicitação OID recebida por meio de um manipulador FilterSynchronousOidRequestComplete .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1709
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

Interface de solicitação OID síncrona no NDIS 6.80