Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De door Microsoft geleverde USB-Type-C Policy Manager bewaakt de activiteiten van USB-Type-C-connectors. Windows, versie 1809, introduceert een set programmeerinterfaces die u kunt gebruiken om een clientstuurprogramma naar Policy Manager te schrijven (een PM-clientstuurprogramma genoemd in dit onderwerp). Het clientstuurprogramma kan deelnemen aan de beleidsbeslissingen voor USB-Type-C-connectors. Met deze set kunt u ervoor kiezen om een exportstuurprogramma voor de kernelmodus of een stuurprogramma voor de gebruikersmodus te schrijven.
De beleidsbeheerder haalt en coƶrdineert de informatie van de USB Connector Manager (UCM), de USB-hostcontroller, de USB-functie en het PM-clientstuurprogramma. Wanneer ui-melding is vereist, verzendt Policy Manager de aanvraag naar systeemshell.
Zie Architecture: USB-Type-C-ontwerp voor een Windows-systeemvoor een volledig overzicht van de stuurprogramma's.
Belangrijke API's
De PM-API's worden gedeclareerd in de Usbpmapi.h header.
1: Clientregistratie
- Het clientstuurprogramma roept UsbPm_Register aan om de callbackfuncties van het stuurprogramma te registreren.
- Het clientdriver wacht op een gebeurtenis van Beleidsbeheer.
Een geslaagde UsbPm_Register-aanroep garandeert niet dat het clientstuurprogramma toegang heeft aangevraagd. Wanneer de Policy Manager gereed is, wordt de EVT_USBPM_EVENT_CALLBACK van de bestuurder aangeroepen met PolicyManagerArrival als de gebeurtenisgegevens die de werkelijke verleende toegang aangeven.
- De UsbPm_Register-aanroep retourneert de registratiehandle.
Het clientstuurprogramma kan EVT_USBPM_EVENT_CALLBACK ontvangen, zelfs voordat UsbPm_Register retourneert.
2: Aankomst hub
- Wanneer een UCMCX-apparaat binnenkomt, wordt de POlicy Manager op de hoogte gesteld en worden alle hub-ingangen bijgehouden, samen met eigenschappen en statussen van alle connectors op elke hub.
- De EVT_USBPM_EVENT_CALLBACK van het clientstuurprogramma wordt aangeroepen met HubArrivalRemoval als gebeurtenisgegevens. De aanroep bevat ook de hub-handgrepen.
- In de implementatie van het clientstuurprogramma van EVT_USBPM_EVENT_CALLBACKroept het stuurprogramma UsbPm_RetrieveHubProperties aan om het aantal connectors op de hub op te halen en roept vervolgens UsbPm_RetrieveConnectorProperties en UsbPm_RetrieveConnectorState aan voor meer informatie over elke connector.
3: Statuswijziging van connector
- Vanwege een statuswijziging in de connector, bijvoorbeeld Type-C koppelen/loskoppelen, wordt het PD-contract onderhandeld en de statusinformatie per connector door de Policy Manager bijgewerkt.
- De EVT_USBPM_EVENT_CALLBACK van het clientstuurprogramma wordt aangeroepen met ConnectorStateChange- als gebeurtenisgegevens. De oproep bevat ook de connectorhandvatten.
- De voltooiingsroutine van het clientstuurprogramma wordt ook aangeroepen en neemt dienovereenkomstig actie.
- In de implementatie van het clientstuurprogramma van EVT_USBPM_EVENT_CALLBACKroept het stuurprogramma UsbPm_RetrieveConnectorPropertiesaan. Met behulp van de opgegeven connectorgreep krijgt het stuurprogramma de meest recente connectorstatus, inspecteert het en kan besluiten om de lokale kopie bij te werken.
4: Wijziging gestart door het clientstuurprogramma
Als u een wijziging wilt aanvragen, roept het clientstuurprogramma UsbPm_AssignConnectorPowerLevelaan.
Het clientstuurprogramma kan deze functie aanroepen binnen de EVT_USBPM_EVENT_CALLBACK callback geregistreerd met behulp van UsbPm_Register.
Policy Manager stuurt de aanvraag door naar USB Connector Manager (UCM). Het clientstuurprogramma voor UcmCx voert de juiste actie uit om de aangevraagde status te wijzigen.
De EVT_USBPM_EVENT_CALLBACK van het clientstuurprogramma wordt aangeroepen met ConnectorStateChange- als gebeurtenisgegevens. De aanroep bevat ook de verbindingsgreep.
De voltooiingsroutine van het clientstuurprogramma wordt ook aangeroepen en neemt dienovereenkomstig actie.
Binnen de callback roept het clientstuurprogramma UsbPm_RetrieveConnectorState aan met de opgegeven connectorhandgreep om de meest recente connectorstatus te krijgen, controleert het en kan besluiten om de lokale kopie bij te werken.
5: Hub verwijderen
- UCM meldt beleidsbeheer wanneer een UcmCx-apparaat (niet een afzonderlijke connector op een UcmCx-apparaat) wordt verwijderd. De Beleidsmanager verwijdert de hub uit de hubverzameling.
- De EVT_USBPM_EVENT_CALLBACK-implementatie van het clientstuurprogramma wordt aangeroepen met HubRemoval- als gebeurtenisgegevens. De aanroep bevat ook de hubhandgreep.
- In de implementatie van het clientstuurprogramma van EVT_USBPM_EVENT_CALLBACKvoert het clientstuurprogramma opschoontaken uit voor de hub en connectors die worden verwijderd. Het stuurprogramma kan UsbPm_RetrieveHubProperties en UsbPm_RetrieveConnectorProperties aanroepen om de eigenschappen van hub en connectors op te halen.
6: Uitschrijving van Cliƫnt
- Het clientstuurprogramma roept UsbPm_Deregister aan wanneer het stuurprogramma geen meldingen meer nodig heeft.
- Beleidsbeheer markeert de registratie van de client als uitgeschreven en roept de EVT_USBPM_EVENT_CALLBACK callback niet aan.