Funzione FwpsPendOperation0 (fwpsk.h)
La funzione FwpsPendOperation0 viene chiamata da un callout per sospendere l'elaborazione dei pacchetti in attesa del completamento di un'altra operazione.
Sintassi
NTSTATUS FwpsPendOperation0(
[in] HANDLE completionHandle,
[out] HANDLE *completionContext
);
Parametri
[in] completionHandle
Handle di completamento necessario per eseguire l'operazione di filtro corrente. Questo parametro viene ottenuto dal membro completionHandle della struttura FWPS_INCOMING_METADATA_VALUES0 passata alla funzione classifyFn del driver di callout.
[out] completionContext
Handle per il contesto di completamento di questa operazione con penna. Quando il callout è pronto per riprendere l'elaborazione dei pacchetti, chiama la funzione FwpsCompleteOperation0 con il valore di questo parametro come parametro completionContext di input.
Valore restituito
La funzione FwpsPendOperation0 restituisce uno dei codici NTSTATUS seguenti.
Codice restituito | Descrizione |
---|---|
|
L'elaborazione dei pacchetti è stata eseguita correttamente. |
|
È stata effettuata una chiamata a FwpsPendOperation0 in un'operazione di classificazione di riautorizzazione. Per altre informazioni, vedere la sezione Osservazioni. |
|
Uno o più parametri non sono validi. |
|
Lo stack di rete TCP/IP non è pronto per consentire questa operazione. |
|
Si è verificato un errore. |
Commenti
Il callout deve mantenere il valore del parametro completionContext fino a quando non riprende l'elaborazione dei pacchetti. Al termine dell'operazione che ha richiesto la chiamata a questa funzione, il callout deve chiamare la funzione FwpsCompleteOperation0 , passando il valore del parametro completionContext .
Un callout può chiamare questa funzione solo per creare un pacchetto originato dal FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx o FWPM_LAYER_ALE_AUTH_CONNECT_ xxxlivelli di filtro. Un callout può eseguire la penna dell'operazione di elaborazione corrente su un pacchetto quando il callout deve eseguire l'elaborazione su uno di questi livelli che può richiedere un lungo intervallo o che deve verificarsi a IRQL = PASSIVE_LEVEL se il runtime > di integrazione corrente PASSIVE_LEVEL.
Per completare una connessione precedentemente inserita nel livello FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx , il driver del callout deve reinserire il pacchetto clonato a tale livello e chiamare la funzione FwpsCompleteOperation0 .
Per poter elaborare i pacchetti tramite penna, la funzione classifyFn del driver di callout deve impostare il membro actionType della struttura FWPS_CLASSIFY_OUT0 su FWP_ACTION_BLOCK e il membro Flags su FWPS_CLASSIFY_OUT_FLAG_ABSORB.
Le connessioni con penna vengono riautente dopo l'esecuzione della funzione FwpsCompleteOperation0 . Le connessioni TCP, se consentite, vengono create completando l'operazione di handshake, ma le connessioni non TCP creano solo voci di stato. Quando la funzione FwpsPendOperation0 viene scaricata dalla memoria, le applicazioni devono quindi ritrasmettere tali pacchetti dopo l'esecuzione di FwpsCompleteOperation0 . I callout potrebbero memorizzare tali dati nel buffer e reinserire i dati per loro conto.
È possibile posticipare solo un'autorizzazione del flusso ALE (Application Layer Enforcement) iniziale chiamando FwpsPendOperation0 e FwpsCompleteOperation0. Se un flusso ALE è riautore autorizzato, viene impostato il flag di FWP_CONDITION_FLAG_IS_REAUTHORIZE. Una chiamata a FwpsPendOperation0 dai livelli di filtro FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx o FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx avrà esito negativo se è impostato il flag di FWP_CONDITION_FLAG_IS_REAUTHORIZE e verrà restituito il codice di stato STATUS_FWP_CANNOT_PEND. Per altre informazioni, vedere Ale Reauthorization in Windows SDK.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows Vista. |
Piattaforma di destinazione | Universale |
Intestazione | fwpsk.h (include Fwpsk.h) |
Libreria | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |