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 コネクタが Dual-Role ポート (DRP) として指定されている場合、クライアント ドライバーはその EVT_UCM_CONNECTOR_SET_DATA_ROLE イベント コールバックを登録する必要があります。

親オブジェクトは WdfDevice です。 WDF_OBJECT_ATTRIBUTESParentObject メンバーを NULL または WDFDEVICE ハンドルに設定できます。 親 WDFDEVICE オブジェクトが削除されると、コネクタ オブジェクトが削除されます。

UCMConnectorCreate を呼び出す UCM クライアント ドライバーの適切な場所は、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
Header ucmmanager.h (Ucmcx.h を含む)
Library UcmCxstub.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT