IOCTL_SRIOV_DETACH IOCTL (pcivirt.h)
La demande indique que la pile de virtualisation souhaite annuler l’inscription pour Plug-and-Play événements (précédemment inscrits via la demande de IOCTL_SRIOV_ATTACH).
Code principal
Bloc d’état
Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit. Sinon, Status indique la condition d’erreur appropriée en tant que code NTSTATUS .
Remarques
Cette requête IOCTL est envoyée par la pile de virtualisation au pilote PCI Express SR-IOV Physical Function (PF) qui expose GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE.
À partir de là, le PF ne doit pas s’attendre à recevoir des demandes IOCTL_SRIOV_EVENT_COMPLETE et IOCTL_SRIOV_NOTIFICATION .
Le conducteur qui doit cesser d’attendre IOCTL_SRIOV_EVENT_COMPLETE. Si le pilote est en attente, il doit cesser d’attendre et continuer à traiter Plug-and-Play IRPs.
Dans cet exemple de gestion de la demande IOCTL_SRIOV_DETACH, le pilote PF conserve les états PnP dans son contexte d’appareil. DeviceContext-PnpRebalancing> est défini sur TRUE lorsque le pilote reçoit IRP_MN_QUERY_STOP_DEVICE et sur FALSE lorsqu’il reçoit IRP_MN_START_DEVICE.
case IOCTL_SRIOV_DETACH:
WdfWaitLockAcquire(deviceContext->PnpStateLock, NULL);
deviceContext->PnpVspAttached = FALSE;
if (deviceContext->PnpRebalancing != FALSE)
{
//
// Any new client (VSP state machine) will not know about
// the current rebalance is it should block attach until
// rebalance is over.
//
deviceContext>PnpSafeToAttach = FALSE;
KeClearEvent(&deviceContext>PnpSafeEvent);
}
//
// Unblock the PnP thread if it waiting for an IO control from the
// client as the client just detached.
//
deviceContext->PnpEventStatus = STATUS_SUCCESS;
KeSetEvent(&deviceContext->PnpUnblockEvent, IO_NO_INCREMENT, FALSE);
WdfWaitLockRelease(deviceContext->PnpStateLock);
status = STATUS_SUCCESS;
break;
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | pcivirt.h |
IRQL | PASSIVE_LEVEL |
Voir aussi
WdfIoTargetSendInternalIoctlSynchronously
WdfIoTargetSendInternalIoctlOthersSynchronously
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour