Bagikan melalui


struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST (ndischimney.h)

[Fitur offload cerobong asap TCP tidak digunakan lagi dan tidak boleh digunakan.]

Struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST.

Sintaks

typedef struct _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST {
  IN NDIS_OBJECT_HEADER                Header;
  IN _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST *NextBlock;
#if ...
  struct                               _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;
  IN _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST *DependentBlockList;
#else
  struct                               _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;
#endif
  OUT NDIS_STATUS                      Status;
  IN PVOID                             NdisReserved[3];
  IN OUT PNDIS_OFFLOAD_HANDLE          OffloadHandle;
  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_PROTOCOL_OFFLOAD_BLOCK_LIST, *PNDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;

Anggota

Header

Header struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST. Header diformat sebagai struktur NDIS_OBJECT_HEADER . Struktur NDIS_OBJECT_HEADER berisi nomor revisi struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, jenis status offload yang segera mengikuti struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dalam memori, dan ukuran struktur NDIS_PROTOCOL_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_PROTOCOL_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 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 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 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_PROTOCOL_OFFLOAD_BLOCK_LIST berikutnya pada lapisan status offload (tetangga, jalur, atau TCP) yang ditunjukkan oleh anggota Jenis anggota Header . NDIS_PROTOCOL_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_PROTOCOL_OFFLOAD_BLOCK_LIST berikutnya tambahan pada tingkat ini.

_NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST

DependentBlockList

Penunjuk ke struktur NDIS_PROTOCOL_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_PROTOCOL_OFFLOAD_BLOCK_LIST di lapisan tetangga hanya dapat menunjuk ke struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST di lapisan jalur. Anggota DependentBlockList dari struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST di lapisan jalur hanya dapat menunjuk ke struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST pada lapisan TCP. Anggota DependentBlockList dari struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST di lapisan TCP selalu NULL.

Nilai DependentBlockListNULL menunjukkan bahwa tidak ada struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dependen.

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_PROTOCOL_OFFLOAD_BLOCK_LIST. Bergantung pada operasi, NDIS menulis salah satu nilai NDIS_STATUS berikut ke anggota Status :

NDIS_STATUS_SUCCESS

Memulai offload: Target offload yang mendasar berhasil membongkar status yang terkait dengan struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dan status yang terkait dengan semua struktur PROTOCOL_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_PROTOCOL_OFFLOAD_BLOCK_LIST.

NDIS_STATUS_OFFLOAD_PARTIAL_SUCCESS

Memulai offload: Target offload yang mendasar berhasil membongkar status yang terkait dengan struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, tetapi gagal membongkar status yang terkait dengan satu atau beberapa struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST yang segera dependen.

Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.

NDIS_STATUS_FAILURE

Memulai offload: Target offload yang mendasar gagal membongkar status yang terkait dengan struktur NDIS_PROTOCOL_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_PROTOCOL_OFFLOAD_BLOCK_LIST.

NDIS_STATUS_RESOURCES

Memulai offload: Target offload gagal membongkar status yang terkait dengan struktur NDIS_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_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_PROTOCOL_OFFLOAD_BLOCK_LIST karena anggota InitialRcvWnd yang ditentukan dalam TCP_OFFLOAD_STATE_CACHED struktur lebih besar dari yang dapat didukung 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

Memulai offload: Jalur MTU untuk koneksi TCP lebih besar dari yang didukung target offload.

Kueri, perbarui, batalkan, atau hentikan offload: Bukan nilai status yang diizinkan.

NdisReserved[3]

Dicadangkan untuk digunakan oleh NDIS.

OffloadHandle

Penunjuk ke struktur NDIS_OFFLOAD_HANDLE . Struktur NDIS_OFFLOAD_HANDLE mewakili protokol atau konteks driver perantara untuk objek status terbongkar.

ProtocolReserved[2]

Dicadangkan untuk digunakan oleh driver protokol, yang dapat menggunakan area ini untuk tujuan mereka sendiri.

MiniportReserved[2]

Dicadangkan untuk digunakan oleh target offload atau bagian miniport dari driver perantara.

ImReserved[2]

Disediakan untuk digunakan oleh driver perantara, yang dapat menggunakan area ini untuk tujuan mereka sendiri.

Scratch[2]

Driver protokol atau driver perantara dapat menggunakan area ini untuk pelacakan internal. Informasi di area ini hanya berlaku sementara pengemudi memiliki kepemilikan NDIS_PROTOCOL_OFFLOAD_BLOCK_LIS T.

SourceHandle

Anggota ini tidak signifikan untuk protokol atau driver perantara. Protokol atau driver perantara tidak boleh mengubah anggota ini.

Saat menyebarluaskan penyelesaian operasi manipulasi status, driver perantara menyalin
SourceHandle yang disimpan dalam entri panggilan IM-nya ke anggota SourceHandle dari NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struktur yang diteruskan ke fungsi NdisMXxxComplete.

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 protokol atau driver perantara menentukan nilai NULL , NetBufferListChain tidak signifikan dan dapat diabaikan oleh driver atau target offload yang mendasar.

Ketika protokol atau driver perantara menentukan nilai non-NULL , NetBufferListChain menunjuk ke struktur NET_BUFFER_LIST yang dapat menjadi struktur yang berdiri sendiri atau struktur pertama dalam daftar tertaut dari struktur tersebut. Setiap struktur NET_BUFFER_LIST dalam daftar tertaut menjelaskan satu struktur NET_BUFFER . Struktur NET_BUFFER dipetakan ke rantai daftar deskriptor memori (MDL). Struktur NET_BUFFER_LIST dan terkait dikunci sehingga tetap tinggal dalam memori fisik. Namun, mereka tidak dipetakan ke dalam memori sistem.

MDL yang terkait dengan struktur NET_BUFFER berisi data yang sedang disampaikan sebagai bagian dari operasi manipulasi status atau penyelesaian operasi tersebut. Saat ini, daftar yang ditautkan hanya dapat berisi satu jenis data: pengiriman data yang luar biasa. Untuk informasi selengkapnya tentang mengirim data, lihat Menangani Pengiriman Data Yang Berutang Selama dan Setelah Operasi Offload.

Target offload atau driver perantara dapat meneruskan pengiriman data yang luar biasa ke driver atau tumpukan host yang terlalu berlebihan 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 menentukan nilai NULL untuk anggota NetBufferListChain .

Keterangan

Driver perantara membuat struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dari NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struktur saat menyebarkan operasi manipulasi status. Kapan menyebarluaskan penyelesaian operasi tersebut, driver perantara menggunakan struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST untuk membangun struktur NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.

Struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dapat segera diikuti dalam memori dengan struktur status offload yang berisi status menjadi (atau yang telah) dilepas, dikueri, diperbarui, dibatalkan, atau dihentikan. Jenis anggota Header struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST menentukan jenis status offload, dan dengan implikasi, struktur status offload tertentu (atau struktur) yang mengikuti struktur NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dalam memori.

Persyaratan

Persyaratan Nilai
Header ndischimney.h (termasuk Ndischimney.h)

Lihat juga

NDIS_OBJECT_HEADER

NEIGHBOR_OFFLOAD_STATE_CACHED

NEIGHBOR_OFFLOAD_STATE_CONST

NEIGHBOR_OFFLOAD_STATE_DELEGATED

NdisInitiateOffload

NdisInvalidateOffload

NdisMAllocatePort

NdisQueryOffload

NdisTerminateOffload

NdisUpdateOffload

PATH_OFFLOAD_STATE_CACHED

PATH_OFFLOAD_STATE_CONST

PATH_OFFLOAD_STATE_DELEGATED

ProtokolInitiateOffloadComplete ProtocolInvalidateOffloadComplete ProtocolQueryOffloadComplete ProtocolTerminateOffloadComplete ProtocolUpdateOffloadComplete

TCP_OFFLOAD_STATE_CACHED

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED