Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée un objet connecteur.
Syntaxe
NTSTATUS UcmConnectorCreate(
[in] WDFDEVICE WdfDevice,
[in] PUCM_CONNECTOR_CONFIG Config,
[in] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCMCONNECTOR *Connector
);
Paramètres
[in] WdfDevice
Handle vers un objet d’appareil framework reçu par le pilote client lors de l’appel précédent à WdfDeviceCreate.
[in] Config
Pointeur vers une structure de UCM_CONNECTOR_CONFIG fournie par l’appelant qui est initialisée en appelant UCM_CONNECTOR_CONFIG_INIT.
[in] Attributes
Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES fournie par l’appelant qui contient des attributs pour le nouvel objet de connecteur. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] Connector
Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet de connecteur.
Valeur de retour
UcmConnectorCreate retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner une valeur NTSTATUS appropriée.
Remarques
Si le pilote client spécifie un identificateur de connecteur déjà utilisé, la méthode échoue avec STATUS_INVALID_PARAMETER code d’erreur.
Si le connecteur Type-C est spécifié pour être un port Dual-Role (DRP), le pilote client doit inscrire son rappel d’événement EVT_UCM_CONNECTOR_SET_DATA_ROLE.
L’objet parent est WdfDevice. Vous pouvez définir le membre ParentObject de WDF_OBJECT_ATTRIBUTES sur NULL ou le handle WDFDEVICE. L’objet connecteur est supprimé lorsque l’objet WDFDEVICE parent est supprimé.
Un emplacement approprié pour un pilote client UCM pour appeler UcmConnectorCreate se trouve dans EvtDevicePrepareHardware ou EvtDeviceD0Entry. À l’inverse, le pilote doit libérer le handle UCMCONNECTOR dans EvtDeviceReleaseHardware ou EvtDeviceD0Exit.
Exemples
Cet exemple de code montre comment créer un connecteur Type-C compatible.
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.");
Exigences
| Exigence | Valeur |
|---|---|
| client minimum pris en charge | Windows 10 |
| serveur minimum pris en charge | Windows Server 2016 |
| plateforme cible | Windows |
| version minimale de KMDF | 1.15 |
| version minimale de UMDF | 2.15 |
| d’en-tête | ucmmanager.h (include Ucmcx.h) |
| bibliothèque | UcmCxstub.lib |
| IRQL | PASSIVE_LEVEL |