code de contrôle FSCTL_SUSPEND_OVERLAY
Le code de contrôle FSCTL_SUSPEND_OVERLAY suspend une source de stockage attachée à un volume, empêchant l’accès à la source de stockage et permettant sa modification ou sa suppression.
Pour effectuer cette opération, appelez FltFsControlFile ou ZwFsControlFile avec les paramètres suivants.
BOOL
WINAPI
DeviceIoControl( (HANDLE) hDevice, // handle to device
(DWORD) FSCTL_SUSPEND_OVERLAY, // dwIoControlCode
(LPDWORD) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPDWORD) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
Paramètres
Instance [in] : FltFsControlFile uniquement. Pointeur de instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
FileObject [in] : FltFsControlFile uniquement. Objet pointeur de fichier du volume pour lequel la superposition est mise à jour. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
FileHandle [in] : ZwFsControlFile uniquement. Handle du volume pour lequel la superposition est mise à jour. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
FsControlCode [in] : code de contrôle de l’opération. Utilisez FSCTL_SUSPEND_OVERLAY pour cette opération.
InputBuffer [in] : pointeur vers la mémoire tampon d’entrée, qui doit contenir une structure WOF_EXTERNAL_INFO . Si nécessaire, des données spécifiques au fournisseur supplémentaires sont incluses immédiatement après WOF_EXTERNAL_INFO. Si le fournisseur est un fichier WIM, une structure WIM_PROVIDER_SUSPEND_OVERLAY_INPUT est incluse après WOF_EXTERNAL_INFO.
InputBufferLength [in] : défini sur sizeof(WOF_EXTERNAL_INFO) plus la taille des données d’entrée supplémentaires du fournisseur.
OutputBuffer [out] : non utilisé. valeur de l’en-tête définie sur Null.
OutputBufferLength [in] : défini sur 0.
Bloc d’état
FltFsControlFile ou ZwFsControlFile retourne STATUS_SUCCESS si l’opération réussit. Sinon, la fonction appropriée peut retourner l’une des valeurs NTSTATUS suivantes.
Code | Signification |
---|---|
STATUS_ACCESS_DENIED | Le demandeur ne dispose pas de privilèges administratifs. |
STATUS_BUFFER_TOO_SMALL | La longueur de la mémoire tampon d’entrée pointée par InputBuffer et spécifiée par InputBufferLength est trop petite. |
STATUS_INTERNAL_ERROR | Le volume demandé n’est pas accessible. |
STATUS_INVALID_DEVICE_REQUEST | Le service de sauvegarde n’est pas présent ou n’est pas démarré. |
Remarques
Lorsque la source de stockage à supprimer est un fichier WIM (Windows Imaging Format), la mémoire tampon d’entrée contient une structure WOF_EXTERNAL_INFO suivie d’une structure WIM_PROVIDER_SUSPEND_OVERLAY_INPUT . Dans ce cas , l’élément InputBufferLength sera sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_REMOVE_OVERLAY_INPUT). La valeur DataSourceId dans WIM_PROVIDER_SUSPEND_OVERLAY_INPUT doit être pour un fichier WIM précédemment ajouté dans une demande de FSCTL_ADD_OVERLAY .
D’autres fournisseurs de stockage définissent leurs propres structures de paramètres d’entrée spécifiques.
Configuration requise
Type d’exigence | Condition requise |
---|---|
En-tête | Ntifs.h (inclure Ntifs.h ou Fltkernel.h) |