UcmUcsiPpmStart function (Ucmucsippm.h)

Instructs the UcmUcsiCx class extension to start sending requests to the client driver.

Syntax

NTSTATUS UcmUcsiPpmStart(
  [in] UCMUCSIPPM PpmObject
);

Parameters

[in] PpmObject

A handle to a Platform Policy Manager (PPM) object that the client driver received in the previous call to UcmUcsiPpmCreate.

Return value

Returns STATUS_SUCCESS if the operation succeeds. Otherwise, this method can return an appropriate NTSTATUS value.

Remarks

UcmUcsiPpmStart indicates that the client driver is now ready to receive request from the class extension. Upon this call, the class extension starts OS Policy Manager (OPM) and Command Handler state machines.

The client driver must call UcmUcsiPpmStart after it had called UcmUcsiPpmStop for error recovery.

This DDI starts the operations that the class extension needs to perform to initialize the OPM and Command Handler state machines. The client driver must call UcmUcsiPpmStart to notify UcmUcsiCx that the driver is ready to receive the IOCTL requests. We recommend that you make this call either from the EVT_WDF_DEVICE_PREPARE_HARDWARE callback function, or after the system calls this callback.

Attempting to start the PPM after it has already started leads to an error condition.

After the client calls UcmUcsiPpmStart, the class extension sends a number of commands to the PPM firmware in order to get PPM and connector capabilities and their statuses. Due to a high number interactions with the firmware, we strongly recommend UcmUcsiCx client implementors call this DDI once during startup and not on resume from a low power state, such as D0Entry callback. This is especially true when the client implements S0 idling.

Requirements

Requirement Value
Minimum KMDF version 1.27
Minimum UMDF version N/A
Header Ucmucsippm.h (include UcmUcsiCx.h)
Library UcmUcsiCxStub.lib
IRQL PASSIVE_LEVEL