Fungsi FwpsPendOperation0 (fwpsk.h)

Fungsi FwpsPendOperation0 dipanggil oleh callout untuk menangguhkan pemrosesan paket yang menunggu penyelesaian operasi lain.

CatatanFwpsPendOperation0 adalah versi tertentu dari FwpsPendOperation. Lihat Nama Version-Independent WFP dan Menargetkan Versi Windows Tertentu untuk informasi selengkapnya.
 

Sintaks

NTSTATUS FwpsPendOperation0(
  [in]  HANDLE completionHandle,
  [out] HANDLE *completionContext
);

Parameter

[in] completionHandle

Handel penyelesaian yang diperlukan untuk menunggu operasi pemfilteran saat ini. Parameter ini diperoleh dari anggota completionHandle dari struktur FWPS_INCOMING_METADATA_VALUES0 yang diteruskan ke fungsi classifyFn driver callout.

[out] completionContext

Handel ke konteks penyelesaian operasi tertunda ini. Ketika callout siap untuk melanjutkan pemrosesan paket, panggilan fungsi FwpsCompleteOperation0 dengan nilai parameter ini sebagai parameter input completionContext .

Nilai kembali

Fungsi FwpsPendOperation0 mengembalikan salah satu kode NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Pemrosesan paket berhasil ditunda.
STATUS_FWP_CANNOT_PEND
Panggilan dilakukan ke FwpsPendOperation0 dalam operasi klasifikasi ulang. Untuk informasi selengkapnya, lihat Keterangan.
STATUS_FWP_NULL_POINTER
Satu atau beberapa parameter tidak valid.
STATUS_FWP_TCPIP_NOT_READY
Tumpukan jaringan TCP/IP belum siap untuk mengizinkan operasi ini.
Kode status lainnya
Terjadi kesalahan.

Keterangan

Callout harus mempertahankan nilai parameter completionContext hingga melanjutkan pemrosesan paket. Ketika operasi yang meminta panggilan ke fungsi ini telah selesai, callout harus memanggil fungsi FwpsCompleteOperation0 , meneruskannya nilai parameter completionContext .

Callout hanya dapat memanggil fungsi ini untuk menunggu paket yang berasal dari FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx, FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx, atau FWPM_LAYER_ALE_AUTH_CONNECT_ lapisan pemfilteranXxx. Callout dapat menunggu operasi pemrosesan saat ini pada paket ketika callout harus melakukan pemrosesan pada salah satu lapisan ini yang mungkin memerlukan interval panjang untuk diselesaikan atau yang harus terjadi pada IRQL = PASSIVE_LEVEL jika IRQL > saat ini PASSIVE_LEVEL.

Untuk menyelesaikan koneksi yang sebelumnya tertunda pada lapisan Xxx FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_, driver callout harus memasukkan kembali paket yang dikloning pada lapisan tersebut serta memanggil fungsi FwpsCompleteOperation0 .

Agar dapat menunggu pemrosesan paket, fungsi classifyFn driver callout harus mengatur anggota actionType dari struktur FWPS_CLASSIFY_OUT0 ke FWP_ACTION_BLOCK dan anggota Bendera ke FWPS_CLASSIFY_OUT_FLAG_ABSORB.

Koneksi yang tertunda diautentikasi ulang setelah fungsi FwpsCompleteOperation0 dijalankan. Koneksi TCP, jika diizinkan, dibuat dengan menyelesaikan operasi jabat tangan, tetapi koneksi non-TCP hanya membuat entri status. Setiap data paket yang tertunda dihapus dari memori ketika fungsi FwpsPendOperation0 selesai, sehingga aplikasi harus mengirimkan ulang paket tersebut setelah FwpsCompleteOperation0 berjalan. Callout dapat menyangga data tersebut dan memasukkan kembali data atas nama mereka.

Hanya otorisasi alur Application Layer Enforcement (ALE) awal yang dapat ditunda dengan memanggil FwpsPendOperation0 dan FwpsCompleteOperation0. Jika alur ALE diotorisasi ulang, bendera FWP_CONDITION_FLAG_IS_REAUTHORIZE diatur. Panggilan ke FwpsPendOperation0 dari lapisan pemfilteranFWPM_LAYER_ALE_AUTH_CONNECT_ Xxx atau FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx akan gagal jika bendera FWP_CONDITION_FLAG_IS_REAUTHORIZE diatur, dan kode status STATUS_FWP_CANNOT_PEND akan dikembalikan. Untuk informasi selengkapnya, lihat ALE Reauthorization di Windows SDK.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows Vista.
Target Platform Universal
Header fwpsk.h (termasuk Fwpsk.h)
Pustaka Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Lihat juga

FWPS_CLASSIFY_OUT0

FWPS_INCOMING_METADATA_VALUES0

FwpsCompleteOperation0

classifyFn