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_ATTRIBUTESの ParentObject メンバーを 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 |