다음을 통해 공유


UcmConnectorCreate 함수(ucmmanager.h)

커넥터 개체를 만듭니다.

구문

NTSTATUS UcmConnectorCreate(
  [in]  WDFDEVICE              WdfDevice,
  [in]  PUCM_CONNECTOR_CONFIG  Config,
  [in]  PWDF_OBJECT_ATTRIBUTES Attributes,
  [out] UCMCONNECTOR           *Connector
);

매개 변수

[in] WdfDevice

클라이언트 드라이버가 WdfDeviceCreate에 대한 이전 호출에서 받은 프레임워크 디바이스 개체에 대한 핸들입니다.

[in] Config

UCM_CONNECTOR_CONFIG_INIT 호출하여 초기화되는 호출자가 제공한 UCM_CONNECTOR_CONFIG 구조체에 대한 포인터입니다.

[in] Attributes

새 커넥터 개체에 대한 특성을 포함하는 호출자가 제공한 WDF_OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 WDF_NO_OBJECT_ATTRIBUTES 수 있습니다.

[out] Connector

새 커넥터 개체에 대한 핸들을 수신하는 위치에 대한 포인터입니다.

반환 값

UcmConnectorCreate 는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 적절한 NTSTATUS 값을 반환할 수 있습니다.

설명

클라이언트 드라이버가 이미 사용 중인 커넥터 식별자를 지정하면 STATUS_INVALID_PARAMETER 오류 코드와 함께 메서드가 실패합니다.

Type-C 커넥터가 DRP(Dual-Role 포트)로 지정된 경우 클라이언트 드라이버는 EVT_UCM_CONNECTOR_SET_DATA_ROLE 이벤트 콜백을 등록해야 합니다.

부모 개체는 WdfDevice입니다. WDF_OBJECT_ATTRIBUTESParentObject 멤버를 NULL 또는 WDFDEVICE 핸들로 설정할 수 있습니다. 부모 WDFDEVICE 개체가 삭제되면 커넥터 개체가 삭제됩니다.

UCM 클라이언트 드라이버가 UcmConnectorCreate 를 호출할 수 있는 적절한 위치는 EvtDevicePrepareHardware 또는 EvtDeviceD0Entry에 있습니다. 반대로 드라이버는 EvtDeviceReleaseHardware 또는 EvtDeviceD0Exit에서 UCMCONNECTOR 핸들을 해제해야 합니다.

예제

이 예제 코드는 PD 지원 Type-C 커넥터를 만드는 방법을 보여 주는 코드입니다.

    
    UCMCONNECTOR Connector;
  
    UCM_CONNECTOR_CONFIG_INIT(&connCfg, 0);

    UCM_CONNECTOR_TYPE_C_CONFIG_INIT(
        &connCfg.TypeCConfig,
        UcmTypeCOperatingModeDrp,
        UcmTypeCCurrentDefaultUsb | UcmTypeCCurrent1500mA | UcmTypeCCurrent3000mA);

    connCfg.EvtSetDataRole = EvtSetDataRole;

    UCM_CONNECTOR_PD_CONFIG_INIT(&connCfg.PdConfig, UcmPowerRoleSink | UcmPowerRoleSource);

    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attr, CONNECTOR_CONTEXT);

    status = UcmConnectorCreate(Device, &connCfg, &attr, &Connector);
    if (!NT_SUCCESS(status))
    {
        TRACE_ERROR(
            "UcmConnectorCreate failed with %!STATUS!.",
            status);
        goto Exit;
    }

    TRACE_INFO("UcmConnectorCreate() succeeded.");

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 Windows
최소 KMDF 버전 1.15
최소 UMDF 버전 2.15
머리글 ucmmanager.h(Ucmcx.h 포함)
라이브러리 UcmCxstub.lib
IRQL PASSIVE_LEVEL

추가 정보

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT