funzione FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE (ndis.h)

NDIS chiama la funzione FilterSynchronousOidRequestComplete del driver di filtro dopo il completamento di una richiesta OID sincrona da un driver sottostante.

Questa funzione è supportata in NDIS 6.81 e versioni successive.

Sintassi

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

Parametri

[in] FilterModuleContext

Handle per l'area di contesto per il modulo di filtro che rappresenta la destinazione di questa richiesta. Il driver di filtro ha creato e inizializzato questa area di contesto nella funzione FilterAttach .

[in, out] OidRequest

Puntatore a una struttura NDIS_OID_REQUEST che specifica l'operazione da completare.

[in, out] Status

Puntatore al codice di stato risultante della richiesta completata.

[in] CallContext

Uno slot di archiviazione di dimensioni PVOID per il driver di filtro per condividere lo stato tra i gestori FilterSynchronousOidRequest e FilterSynchronousOidRequestComplete . Se il driver di filtro implementa un gestore FilterSynchronousOidRequest , questo parametro contiene il valore di contesto restituito dal gestore FilterSynchronousOidRequest . In caso contrario, se il driver del filtro non implementa un gestore FilterSynchronousOidRequest , questo valore è zero.

Valore restituito

nessuno

Osservazioni

FilterSynchronousOidRequestComplete è una funzione facoltativa. Se un driver di filtro non deve osservare o modificare le richieste OID sincrone completate dal driver miniport, il driver di filtro deve impostare il punto di ingresso per questa funzione su NULL quando chiama NdisFRegisterFilterDriver.

NDIS chiama la funzione FilterSynchronousOidRequestComplete del driver di filtro per elaborare le richieste OID sincrone completate dai driver sottostanti. I driver di filtro possono leggere o modificare alcuni campi nella struttura NDIS_OID_REQUEST come indicato di seguito:

Campo Filtrare l'accesso
Intestazione Sola lettura
RequestType Lettura/Scrittura
PortNumber Lettura/Scrittura
Timeout Non accedere
RequestId Non accedere
Requesthandle Lettura/Scrittura
DATA Lettura/Scrittura
NdisReserved Non accedere
MiniportReserved Non accedere
SourceReserved Non accedere
SupportedRevision Lettura/Scrittura
Reserved1, Reserved2 Non accedere
SwitchId Lettura/Scrittura
VPortId Lettura/Scrittura
Flags Lettura/Scrittura

Oltre a modificare la struttura NDIS_OID_REQUEST , i driver di filtro possono leggere o modificare il codice di stato con cui l'operazione è stata completata. Il driver di filtro può scrivere un nuovo valore nel parametro *Status . I driver di filtro non devono scrivere NDIS_STATUS_PENDING o NDIS_STATUS_ALREADY_COMPLETE nel parametro *Status .

Se il driver del filtro registra anche un gestore FilterSynchronousOidRequest , NDIS garantisce che il gestore FilterSynchronousOidRequestComplete venga chiamato se e solo se il gestore FilterSynchronousOidRequest restituisce NDIS_STATUS_SUCCESS.

È previsto che i driver di filtro vengano restituiti dal gestore FilterSynchronousOidRequestComplete rapidamente, senza bloccare, attendere o dormire. Le richieste OID sincrone vengono usate solo per le operazioni a bassa latenza e i driver di filtro devono cercare di continuare o completarli entro diversi millisecondi.

NDIS non serializza le richieste OID sincrone tra loro, rispetto ad altre richieste OID o a FilterPause. È responsabilità del driver di filtro implementare qualsiasi sincronizzazione necessaria.

NDIS serializza le richieste OID sincrone su FilterDetach: NDIS garantisce che nessuna richiesta OID sincrona sarà attiva una volta richiamato FilterDetach .

I driver di filtro non devono chiamare NdisAllocateCloneOidRequest o NdisCancelOidRequest in una richiesta OID sincrona. I driver di filtro non devono chiamare NdisFSynchronousOidRequest su una richiesta OID ricevuta tramite un gestore FilterSynchronousOidRequestComplete .

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1709
Piattaforma di destinazione Windows
Intestazione ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

Interfaccia di richiesta OID sincrona in NDIS 6.80