An overlying driver issues an object identifier (OID) set request of OID_SRIOV_SET_VF_POWER_STATE to change the power state of a specified PCI Express (PCIe) Virtual Function (VF) on the network adapter. Since changing the power state is a privileged operation, overlying drivers issue this OID set request to the miniport driver of the PCIe Physical Function (PF) on the network adapter. The PF miniport driver then sets the specified power state on the VF.

The InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS structure.


When the PF miniport driver is issued this OID set request, it must follow these guidelines:

  • The PF miniport driver must verify that the VF, specified by the VFId member of the NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS structure, has resources that have been previously allocated. The PF miniport driver allocates resources for a VF during an OID method request of OID_NIC_SWITCH_ALLOCATE_VF. If the specified VF is not in an allocated state, the driver must fail the OID request.

  • The power state operation must only affect the specified VF. The operation must not affect other VFs or the PF on the same network adapter.

For more information, see Setting the Power State of a Virtual Function.

Return Status Codes

The PF miniport driver returns one of the following status codes for the OID set request of OID_SRIOV_SET_VF_POWER_STATE.

Status CodeDescription


The OID request completed successfully.


The PF miniport driver either does not support the single root I/O virtualization (SR-IOV) interface or is not enabled to use the interface.


One or more of the members of the NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS structure have invalid values.


The information buffer was too short. The PF miniport driver must set the DATA.SET_INFORMATION.BytesNeeded member in the NDIS_OID_REQUEST structure to the minimum buffer size that is required.


The request failed for other reasons.




Supported in NDIS 6.30 and later.


Ntddndis.h (include Ndis.h)

See also




Send comments about this topic to Microsoft