As a query, overlying drivers can use the OID_PM_PROTOCOL_OFFLOAD_LIST OID to enumerate the protocol offloads that are set on an underlying network adapter. After a successful return from the OID query request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to a list of NDIS_PM_PROTOCOL_OFFLOAD structures that describe the currently active protocol offloads.
NDIS handles the query for miniport drivers. NDIS drivers can use the OID_PM_PROTOCOL_OFFLOAD_LIST OID to get a list of protocol offloads that are set on an underlying network adapter.
For each NDIS_PM_PROTOCOL_OFFLOAD structure in the list, NDIS sets the NextProtocolOffloadOffset member to the offset from the beginning of the OID information buffer (that is, the beginning of the buffer that the InformationBuffer member of the NDIS_OID_REQUEST structure points to) to the beginning of the next NDIS_PM_PROTOCOL_OFFLOAD structure in the list. The offset in the NextProtocolOffloadOffset member of the last structure in the list is zero.
If there are no protocol offloads that are set on the network adapter, NDIS sets the DATA.QUERY_INFORMATION.BytesWritten member of the NDIS_OID_REQUEST structure to zero and returns NDIS_STATUS_SUCCESS. The data within the DATA.QUERY_INFORMATION.InformationBuffer member is not modified by NDIS.
NDIS returns one of the following status codes for the request:
The request completed successfully. The InformationBuffer contains a pointer to a list of protocol offloads, if any.
The request is pending completion. The final status code and results will be passed to the OID request completion handler of the caller.
The information buffer was too short. NDIS set the DATA.QUERY_INFORMATION.BytesNeeded member in the NDIS_OID_REQUEST structure to the minimum buffer size that is required.
The request failed for reasons other than the preceding reasons.
|Supported in NDIS 6.20 and later. Not requested for miniport drivers. (See Remarks section.)|
Build date: 11/16/2013