struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST (ndischimney.h)
[Fitur offload cerobong asap TCP tidak digunakan lagi dan tidak boleh digunakan.]
Struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST adalah blok penyusun dasar pohon status offload cerobong asap TCP. Pohon status offload dapat berisi satu atau beberapa struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
Sintaks
typedef struct _NDIS_MINIPORT_OFFLOAD_BLOCK_LIST {
IN NDIS_OBJECT_HEADER Header;
IN _NDIS_MINIPORT_OFFLOAD_BLOCK_LIST *NextBlock;
#if ...
struct _NDIS_MINIPORT_OFFLOAD_BLOCK_LIST;
IN _NDIS_MINIPORT_OFFLOAD_BLOCK_LIST *DependentBlockList;
#else
struct _NDIS_MINIPORT_OFFLOAD_BLOCK_LIST;
#endif
OUT NDIS_STATUS Status;
IN PVOID NdisReserved[2];
IN OUT PVOID *MiniportOffloadContext;
IN NDIS_HANDLE NdisOffloadHandle;
IN PVOID ProtocolReserved[2];
IN PVOID MiniportReserved[2];
IN PVOID ImReserved[2];
IN PVOID Scratch[2];
IN PVOID SourceHandle;
IN NDIS_PORT_NUMBER PortNumber;
IN OUT PNET_BUFFER_LIST NetBufferListChain;
} NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, *PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST;
Anggota
Header
Header struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Header diformat sebagai struktur NDIS_OBJECT_HEADER . Struktur NDIS_OBJECT_HEADER berisi nomor revisi struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, jenis status offload yang segera mengikuti struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dalam memori, dan ukuran struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, termasuk header, dalam byte.
Jenis anggota struktur NDIS_OBJECT_HEADER menunjukkan jenis status offload, dan dengan implikasi, struktur status offload tertentu (atau struktur) yang segera mengikuti struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dalam memori.
Nilai OFFLOAD_STATE_TYPE berikut ini didukung:
NeighborOffloadConstState
Menentukan status tetangga yang konstan. Status ini diformat sebagai NEIGHBOR_OFFLOAD_STATE_CONST struktur.
NeighborOffloadCachedState
Menentukan status tetangga yang di-cache. Status ini diformat sebagai NEIGHBOR_OFFLOAD_STATE_CACHED struktur.
NeighborOffloadDelegatedState
Menentukan status tetangga yang didelegasikan. Status ini diformat sebagai NEIGHBOR_OFFLOAD_STATE_DELEGATED struktur.
NeighborOffloadState
Menentukan semua informasi status tetangga, termasuk status tetangga yang konstanta, di-cache, dan didelegasikan. Status ini diformat sebagai struktur NEIGHBOR_OFFLOAD_STATE_CONST, diikuti dengan struktur NEIGHBOR_OFFLOAD_STATE_CACHED, diikuti oleh struktur NEIGHBOR_OFFLOAD_STATE_DELEGATED.
Ip4OffloadConstState
Menentukan status jalur konstanta (IPv4). Status ini diformat sebagai PATH_OFFLOAD_STATE_CONST struktur.
Ip4OffloadCachedState
Menentukan status jalur yang di-cache (IPv4). Status ini diformat sebagai PATH_OFFLOAD_STATE_CACHED struktur.
Ip4OffloadDelegatedState
Menentukan status jalur yang didelegasikan (IPv4). Status ini diformat sebagai PATH_OFFLOAD_STATE_DELEGATED struktur. Saat ini tidak ada status jalur yang didelegasikan. Struktur PATH_OFFLOAD_STATE_DELEGATED tidak berisi variabel apa pun.
Ip4OffloadState
Menentukan semua status jalur (IPv4), termasuk status jalur konstanta, di-cache, dan didelegasikan. Status ini diformat sebagai struktur PATH_OFFLOAD_STATE_CONST, diikuti dengan struktur PATH_OFFLOAD_STATE_CACHED, diikuti dengan struktur PATH_OFFLOAD_STATE_DELEGATED.
Ip6OffloadConstState
Menentukan status jalur konstanta (IPv6). Status ini diformat sebagai struktur PATH_OFFLOAD_STATE_CONST.
Ip6OffloadCachedState
Menentukan status jalur yang di-cache (IPv6). Status ini diformat sebagai struktur PATH_OFFLOAD_STATE_CACHED.
Ip6OffloadDelegatedState
Menentukan status jalur yang didelegasikan (IPv6). Status ini diformat sebagai struktur PATH_OFFLOAD_STATE_DELEGATED. Saat ini, tidak ada status jalur yang didelegasikan. Struktur PATH_OFFLOAD_STATE_DELEGATED tidak berisi variabel apa pun.
Ip6OffloadState
Menentukan semua informasi status jalur (IPv6), termasuk status jalur konstanta, di-cache, dan didelegasikan. Status ini diformat sebagai struktur PATH_OFFLOAD_STATE_CONST, diikuti dengan struktur PATH_OFFLOAD_STATE_CACHED, diikuti dengan struktur PATH_OFFLOAD_STATE_DELEGATED.
TcpOffloadConstState
Menentukan status TCP konstanta. Status ini diformat sebagai TCP_OFFLOAD_STATE_CONST struktur.
TcpOffloadCachedState
Menentukan status TCP yang di-cache. Status ini diformat sebagai TCP_OFFLOAD_STATE_CACHED struktur.
TcpOffloadDelegatedState
Menentukan status TCP yang didelegasikan. Status ini diformat sebagai TCP_OFFLOAD_STATE_DELEGATED struktur.
TcpOffloadResourceState
Dicadangkan. Nilai OFFLOAD_STATE_TYPE ini, serta struktur TCP_OFFLOAD_RESOURCE_STATE, saat ini tidak digunakan.
TcpOffloadState
Menentukan semua informasi status TCP, termasuk status TCP konstanta, di-cache, dan didelegasikan. Status ini diformat sebagai struktur TCP_OFFLOAD_STATE_CONST, diikuti dengan struktur TCP_OFFLOAD_STATE_CACHED, diikuti dengan struktur TCP_OFFLOAD_STATE_DELEGATED.
FilterReservedOffloadState
Dicadangkan untuk driver filter.
NextBlock
Penunjuk ke struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST berikutnya pada lapisan status offload (tetangga, jalur, atau TCP) yang ditunjukkan oleh anggota Jenis anggota Header . NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struktur yang ditautkan melalui pointer NextBlock selalu berada pada lapisan yang sama dari status offload. Nilai NextBlockNULL menunjukkan bahwa tidak ada struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST berikutnya tambahan pada tingkat ini.
_NDIS_MINIPORT_OFFLOAD_BLOCK_LIST
DependentBlockList
Penunjuk ke struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST yang berada pada lapisan dependen status offload (lapisan yang lebih tinggi di pohon status offload). Untuk offload cerobong asap TCP:
- Anggota DependentBlockList dari struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di lapisan tetangga hanya dapat menunjuk ke struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di lapisan jalur.
- Anggota DependentBlockList dari struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di lapisan jalur hanya dapat menunjuk ke struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di lapisan TCP.
- Anggota DependentBlockList dari struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di lapisan TCP selalu NULL.
Status
Status penyelesaian offload yang dimulai, offload kueri, perbarui offload, batalkan offload, atau hentikan operasi offload yang dilakukan target offload pada status yang terkait dengan, atau direferensikan oleh, struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Bergantung pada operasi, target offload menulis salah satu nilai NDIS_STATUS berikut ke anggota Status :
NDIS_STATUS_SUCCESS
Memulai offload: Target offload berhasil membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dan status yang terkait dengan semua struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST yang segera bergantung.
Kueri, perbarui, batalkan, atau hentikan offload: Target offload berhasil melakukan operasi pada status yang terkait dengan, atau direferensikan oleh, struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
NDIS_STATUS_OFFLOAD_PARTIAL_SUCCESS
Memulai offload: Target offload berhasil membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, tetapi gagal membongkar status yang terkait dengan satu atau beberapa struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST yang segera bergantung.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_FAILURE
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Penyebab kegagalan tidak dapat dikategorikan.
Kueri, perbarui, batalkan, atau hentikan offload: Target offload gagal melakukan operasi pada status yang terkait dengan, atau direferensikan oleh, struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
NDIS_STATUS_RESOURCES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan memori host yang cukup.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_TCP_ENTRIES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan objek status koneksi TCP.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_PATH_ENTRIES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan objek status jalur.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_NEIGHBOR_ENTRIES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan objek status tetangga.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_HW_ADDRESS_ENTRIES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena tumpukan host menentukan anggota DlSourceAddressnon-NULL di NEIGHBOR_OFFLOAD_STATE_CONST struktur, dan target offload tidak mendukung alamat MAC sumber yang dapat dikonfigurasi atau tidak dapat menerima alamat MAC sumber tambahan.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_IP_ADDRESS_ENTRIES
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan struktur data untuk alamat IP sumber yang direferensikan oleh penunjuk SourceAddress di PATH_OFFLOAD_STATE_CONST struktur.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_TCP_XMIT_BUFFER
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan buffer transmisi TCP yang cukup.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_TCP_RCV_BUFFER
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena target offload tidak dapat mengalokasikan buffer penerima TCP yang cukup.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_TCP_RCV_WINDOW
Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST karena anggota InitialRcvWnd yang ditentukan dalam TCP_OFFLOAD_STATE_CACHED struktur lebih besar dari yang dapat didukung oleh target offload.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_VLAN_ENTRIES
Memulai offload: Target offload telah kehabisan sumber daya untuk melacak ID VLAN tambahan.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_VLAN_MISMATCH
Memulai offload: VlanId tetangga bukan nol dan tidak cocok dengan salah satu ID VLAN antarmuka.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NDIS_STATUS_OFFLOAD_PATH_MTU
Jalur MTU untuk koneksi TCP lebih besar dari yang didukung target offload.
Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.
NdisReserved[2]
Dicadangkan untuk digunakan oleh NDIS.
MiniportOffloadContext
Pointer ke lokasi memori tempat target offload menulis nilai PVOID. Nilai PVOID mereferensikan area konteks offload tempat target offload menyimpan status yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Jika status adalah status baru yang akan dilepaskan oleh target offload, lokasi memori yang diacu oleh MiniportOffloadContext berisi nilai NULL . Setelah membongkar status, target offload menulis nilai PVOID ke lokasi memori ini. Nilai PVOID yang disediakan oleh target offload mereferensikan area konteks offload tempat status diturunkan. Jika anggota MiniportOffloadContext itu sendiri adalah NULL, struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST adalah tempat penampung di pohon status offload.
NdisOffloadHandle
Handel yang disediakan target offload dalam panggilan berikutnya ke Fungsi NdisTcpOffloadEventHandler atau Fungsi NdisTcpOffloadReceiveHandler saat membuat indikasi pada status offload yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST ini.
ProtocolReserved[2]
Dicadangkan untuk digunakan oleh driver protokol, yang dapat menggunakan area ini untuk tujuan mereka sendiri. Target offload tidak boleh mengubah nilai ini.
MiniportReserved[2]
Dicadangkan untuk digunakan oleh target offload, yang dapat menggunakan area ini untuk tujuan mereka sendiri, seperti mengantri status offload yang terkait dengan struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
ImReserved[2]
Dicadangkan untuk digunakan oleh driver perantara, yang dapat menggunakan area ini untuk tujuan mereka sendiri. Target offload tidak boleh mengubah nilai ini.
Scratch[2]
Target offload dapat menggunakan area ini untuk pelacakan internal. Informasi di area ini hanya berlaku sementara target offload memiliki kepemilikan NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
SourceHandle
Anggota ini tidak signifikan untuk target offload. Target offload tidak boleh mengubah anggota ini.
PortNumber
Nomor port yang mengidentifikasi port adaptor miniport. Untuk menetapkan nomor port adaptor miniport, panggil fungsi NdisMAllocatePort . Nilai nol mengidentifikasi port default adaptor miniport. Gunakan port default jika driver miniport belum mengalokasikan port untuk adaptor yang ditentukan.
NetBufferListChain
Ketika tumpukan host menentukan nilai NULL , NetBufferListChain tidak signifikan dan dapat diabaikan oleh target offload.
Ketika tumpukan host menentukan nilai non-NULL , NetBufferListChain menunjuk ke struktur NET_BUFFER_LIST yang dapat menjadi struktur yang berdiri sendiri atau struktur pertama dalam daftar tertaut struktur tersebut. Setiap struktur NET_BUFFER_LIST dalam daftar tertaut menjelaskan satu struktur NET_BUFFER . Struktur NET_BUFFER memetakan ke rantai daftar deskriptor memori (MDL). Struktur NET_BUFFER_LIST dan terkait terkunci sehingga mereka tetap tinggal dalam memori fisik. Namun, mereka tidak dipetakan ke dalam memori sistem.
MDL yang terkait dengan struktur NET_BUFFER berisi data yang diteruskan tumpukan host ke target offload sebagai bagian dari operasi offload. Target offload menyelesaikan data tersebut secara asinkron kembali ke tumpukan host dengan memanggil fungsi NdisTcpOffloadXxxComplete yang sesuai. Saat ini, daftar yang ditautkan hanya dapat berisi satu jenis data: pengiriman data yang luar biasa. Untuk informasi selengkapnya, lihat Menangani Pengiriman Data Yang Berutang Selama dan Setelah Operasi Offload.
Target offload dapat meneruskan pengiriman data yang luar biasa ke tumpukan host saat mengakhiri offload koneksi TCP. Dalam hal ini, target offload menentukan nilai non-NULL untuk anggota NetBufferListChain saat memanggil Fungsi NdisMTerminateOffloadComplete . Jika target offload tidak meneruskan pengiriman data untuk koneksi TCP yang sedang dihentikan, target tersebut harus menentukan nilai NULL untuk anggota NetBufferListChain .
Keterangan
NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struktur dapat dihubungkan bersama-sama untuk membangun kerangka kerja pohon negara offload cerobong asap TCP.
Melalui NDIS, tumpukan host melewati penunjuk OffloadBlockList , yang mereferensikan pohon status offload ke salah satu fungsi target offload berikut:
- NdismInitiateOffloadComplete
- NdismQueryOffloadStateComplete
- NdisMInvalidateOffloadComplete
- NdisMTerminateOffloadComplete
Target tumpukan host dan offload menggunakan anggota *MiniportOffloadContext dan NdisOffloadHandle dari struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST untuk mereferensikan status offload. Untuk informasi selengkapnya, lihat Menyimpan dan Mereferensikan Status Terbongkar.
Struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dapat melakukan salah satu dari beberapa fungsi dalam pohon status offload. Ini dapat berfungsi sebagai tempat penampung, linker, atau dapat menyampaikan status baru untuk dibongkar oleh target offload. Untuk informasi selengkapnya, lihat Tempat Penampung, Linker, dan Offload Baru.
Sebelum menyelesaikan offload yang dimulai, offload kueri, perbarui offload, batalkan offload, atau hentikan operasi offload, target offload harus menulis status penyelesaian ke anggota Status dari setiap struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST di pohon status.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ndischimney.h (termasuk Ndischimney.h) |
Lihat juga
NEIGHBOR_OFFLOAD_STATE_DELEGATED NdismInvalidateOffloadComplete NdisMQueryOffloadStateComplete NdismTerminateOffloadCompleteSaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk