EVT_UFX_DEVICE_HOST_DISCONNECT fonction de rappel (ufxclient.h)
Implémentation du pilote client pour désactiver la communication du contrôleur de fonction avec l’hôte.
Syntaxe
EVT_UFX_DEVICE_HOST_DISCONNECT EvtUfxDeviceHostDisconnect;
void EvtUfxDeviceHostDisconnect(
[in] UFXDEVICE unnamedParam1
)
{...}
Paramètres
[in] unnamedParam1
Handle vers un objet de périphérique USB reçu par le pilote client lors d’un appel précédent à la méthode UfxDeviceCreate.
Valeur de retour
Aucun
Remarques
Le pilote client pour le contrôleur hôte de fonction inscrit son implémentation EVT_UFX_DEVICE_HOST_DISCONNECT avec l’extension de classe de fonction USB (UFX) en appelant la méthode UfxDeviceCreate.
UFX appelle ce rappel d’événement pour effectuer une déconnexion réversible sur le câble USB. Après cet appel, le pilote client ne doit pas lancer une connexion avec l’hôte tant que UFX n’appelle EVT_UFX_DEVICE_HOST_CONNECT.
Le pilote client indique l’achèvement de cet événement en appelant la méthode UfxDeviceEventComplete.
Exemples
EVT_UFX_DEVICE_HOST_DISCONNECT UfxDevice_EvtDeviceHostDisconnect;
VOID
UfxDevice_EvtDeviceHostDisconnect (
_In_ UFXDEVICE UfxDevice
)
/*++
Routine Description:
EvtDeviceHostDisconnect callback handler for UFXDEVICE object.
Arguments:
UfxDevice - UFXDEVICE object representing the device.
--*/
{
PCONTROLLER_CONTEXT ControllerContext;
PUFXDEVICE_CONTEXT DeviceContext;
BOOLEAN EventComplete;
TraceEntry();
DeviceContext = UfxDeviceGetContext(UfxDevice);
ControllerContext = DeviceGetControllerContext(DeviceContext->FdoWdfDevice);
EventComplete = TRUE;
//
// #### TODO: Cancel all transfers. ####
//
WdfSpinLockAcquire(ControllerContext->DpcLock);
//
// #### TODO: Insert code to clear the run state on the controller ####
//
WdfSpinLockRelease(ControllerContext->DpcLock);
if (EventComplete) {
UfxDeviceEventComplete(UfxDevice, STATUS_SUCCESS);
}
TraceExit();
}
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Windows |
version minimale de KMDF | 1.0 |
version minimale de UMDF | 2.0 |
d’en-tête | ufxclient.h |
IRQL | <=DISPATCH_LEVEL |