Routine MRxLowIOSubmit[LOWIO_OP_UNLOCK]
La routine MRxLowIOSubmit[LOWIO_OP_UNLOCK] est appelée par RDBSS pour demander qu’un mini-redirecteur réseau supprime un verrou unique sur un objet de fichier.
Syntaxe
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_UNLOCK];
NTSTATUS MRxLowIOSubmit[LOWIO_OP_UNLOCK](
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Paramètres
RxContext [in, out]
Pointeur vers la structure RX_CONTEXT. Ce paramètre contient l’IRP qui demande l’opération.
Valeur retournée
MRxLowIOSubmit[LOWIO_OP_UNLOCK] retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple :
Code de retour | Description |
---|---|
STATUS_CONNECTION_DISCONNECTED | La connexion a été déconnectée. |
STATUS_INSUFFICIENT_RESOURCES | Les ressources étaient insuffisantes pour effectuer la demande. |
STATUS_INVALID_NETWORK_RESPONSE | Une réponse non valide a été reçue du serveur distant. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été spécifié dans RxContext. |
STATUS_LINK_FAILED | La tentative de connexion à un serveur distant pour terminer la demande a échoué. |
STATUS_NOT_IMPLEMENTED | Cette routine n’est pas implémentée. |
STATUS_SHARING_VIOLATION | Une violation de partage s’est produite. |
STATUS_UNSUCCESSFUL | L’appel a échoué. |
Remarques
RDBSS appelle MRxLowIOSubmit[LOWIO_OP_UNLOCK] en réponse à la réception d’une demande de IRP_MJ_LOCK_CONTROL avec un code mineur de IRP_MN_UNLOCK_SINGLE.
Avant d’appeler MRxLowIOSubmit[LOWIO_OP_UNLOCK], RDBSS modifie les membres suivants dans la structure RX_CONTEXT pointée vers le paramètre RxContext :
Le membre LowIoContext.Operation est défini sur LOWIO_OP_UNLOCK.
Le membre LowIoContext.ResourceThreadId est défini sur le thread du processus qui a lancé l’opération dans RDBSS.
Le membre LowIoContext.ParamsFor.Locks.ByteOffset a la valeur IrpSp-Parameters.LockControl.ByteOffset.QuadPart>.
Le membre LowIoContext.ParamsFor.Locks.Key est défini sur la valeur IrpSp-Parameters.LockControl.Key>.
Le membre LowIoContext.ParamsFor.Locks.Length a la valeur IrpSp-Parameters.LockControl.Length.QuadPart>.
Le membre LowIoContext.Operation de la structure RX_CONTEXT spécifie l’opération d’E/S faible à effectuer. Plusieurs des routines d’E/S à faible niveau peuvent pointer vers la même routine dans un mini-redirecteur réseau, car ce membre LowIoContext.Operation peut être utilisé pour différencier l’opération d’E/S faible demandée. Par exemple, tous les appels d’E/S liés aux verrous de fichiers peuvent appeler la même routine d’E/S faible dans le mini-redirecteur réseau et cette routine peut utiliser le membre LowIoContext.Operation pour différencier l’opération de verrouillage et de déverrouillage demandée.
Si la routine MRxLowIOSubmit[LOWIO_OP_UNLOCK] peut prendre beaucoup de temps, le pilote de mini-redirecteur réseau doit libérer la structure FCB avant de lancer la communication réseau. La structure FCB peut être libérée en appelant RxReleaseFcbResourceForThreadInMRx. Pendant le traitement de la routine MRxLowIOSubmit[LOWIO_OP_UNLOCK], le membre LowIoContext.ResourceThreadId de RX_CONTEXT est garanti pour indiquer le thread du processus qui a lancé l’opération dans RDBSS.
Le membre LowIoContext.ResourceThreadId de RX_CONTEXT peut être utilisé pour libérer la structure FCB pour le compte d’un autre thread. Lorsqu’une routine asynchrone se termine, la structure FCB acquise à partir du thread initial peut être libérée.
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
En-tête |
Mrx.h (inclure Mrx.h) |
Voir aussi
MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]
MRxLowIOSubmit[LOWIO_OP_FSCTL]
MRxLowIOSubmit[LOWIO_OP_IOCTL]
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK_MULTIPLE]
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