As a query, protocol drivers can use the OID_PM_PARAMETERS OID to query the power management hardware capabilities of a network adapter that are currently enabled. After a successful return from the OID query request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_PM_PARAMETERS structure.
As a set, protocol drivers can use the OID_PM_PARAMETERS OID to enable or disable the current hardware capabilities of a network adapter. The protocol driver provides a pointer to an NDIS_PM_PARAMETERS structure in the InformationBuffer member of the NDIS_OID_REQUEST structure.
Starting with NDIS 6.20, overlying protocol and filter drivers use OID_PM_PARAMETERS to query and set the power management hardware capabilities of a network adapter that are currently enabled.
When an overlying driver queries the OID_PM_PARAMETERS OID, NDIS completes the request without forwarding it to the miniport driver. NDIS stores the requested settings and combines them with the settings from other such requests. Before NDIS transitions the network adapter to the low power state, NDIS sends a set request to the miniport driver that contains the combined settings from all of the requests that NDIS stored.
The capabilities that are currently enabled can be a subset of the capabilities that the hardware supports. For more information about the capabilities that the hardware supports, see OID_PM_HARDWARE_CAPABILITIES.
Note If NDIS sets the NDIS_PM_SELECTIVE_SUSPEND_ENABLED flag in the WakeUpFlags member of NDIS_PM_PARAMETERS structure, it issues the OID set request of OID_PM_PARAMETERS directly to the miniport driver. This allows NDIS to bypass the processing by filter drivers in the networking driver stack.
NDIS or the miniport driver returns one of the following status codes for the request:
The request completed successfully.
The request is pending completion. NDIS will pass the final status code and results to the OID request completion handler of the caller after the request is complete.
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 because it tried to enable a capability that the underlying network adapter does not support.
The request failed for reasons other than the preceding reasons.
|Supported in NDIS 6.20 and later.|