IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL IOCTL (ucmtcpciportcontrollerrequests.h)

Gets the values of all control registers defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

A pointer to a UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_IN_PARAMS structure that contains all control register values. To get the structure, call WdfRequestRetrieveInputBuffer by passing the received framework request object.

Input buffer length

The size of the UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_IN_PARAMS structure.

Output buffer

A pointer to the UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_OUT_PARAMS structure. To get the structure, call WdfRequestRetrieveOutputBuffer by passing the received framework request object.

Output buffer length

The size of the UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_OUT_PARAMS structure.

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code.

Remarks

The UcmTcpciCx class extension sends this IOCTL request to retrieve the values of the control registers. The client driver must communicate with the port controller to retrieve the POWER_CONTROL, ROLE_CONTROL, TCPC_CONTROL, and FAULT_CONTROL Register values and populate the received UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_OUT_PARAMS structure with those values. To complete the request, the driver must set the populated structure on the framework request object by calling WdfRequestSetInformation and then call WdfRequestComplete to complete the request.

Requirements

Requirement Value
Header ucmtcpciportcontrollerrequests.h

See also

Creating IOCTL Requests in Drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously