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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de