添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
慷慨的圣诞树  ·  android ...·  3 月前    · 
不开心的拖把  ·  mac ...·  1 年前    · 
细心的荒野  ·  android 网络avi文件 ...·  1 年前    · 

Ce navigateur n’est plus pris en charge.

Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.

Télécharger Microsoft Edge Plus d’informations sur Internet Explorer et Microsoft Edge

La routine NtFsControlFile envoie un code de contrôle directement à un système de fichiers ou à un pilote de filtre de système de fichiers spécifié, ce qui entraîne l’exécution par le pilote correspondant de l’action spécifiée.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtFsControlFile(
  [in]            HANDLE           FileHandle,
  [in, optional]  HANDLE           Event,
  [in, optional]  PIO_APC_ROUTINE  ApcRoutine,
  [in, optional]  PVOID            ApcContext,
  [out]           PIO_STATUS_BLOCK IoStatusBlock,
  [in]            ULONG            FsControlCode,
  [in, optional]  PVOID            InputBuffer,
  [in]            ULONG            InputBufferLength,
  [out, optional] PVOID            OutputBuffer,
  [in]            ULONG            OutputBufferLength

Paramètres

[in] FileHandle

Handle retourné par NtCreateFile ou NtOpenFile pour l’objet file représentant le fichier ou le répertoire sur lequel l’action spécifiée doit être effectuée. L’objet file doit avoir été ouvert pour les E/S asynchrones si l’appelant spécifie un contexte Event, ApcRoutine et APC (dans ApcContext) ou un contexte d’achèvement (dans ApcContext).

[in, optional] Event

Handle pour un événement créé par l’appelant. Si ce paramètre est fourni, l’appelant est placé dans un état d’attente jusqu’à ce que l’opération demandée soit terminée et que l’événement donné soit défini sur l’état Signaled. Ce paramètre est facultatif et peut être NULL. Elle doit être NULL si l’appelant attend que fileHandle soit défini sur l’état Signaled.

[in, optional] ApcRoutine

Adresse d’une routine APC fournie par l’appelant à appeler une fois l’opération demandée terminée. Ce paramètre est facultatif et peut être NULL. Il doit être NULL s’il existe un objet d’achèvement d’E/S associé à l’objet file.

[in, optional] ApcContext

Pointeur vers une zone de contexte déterminée par l’appelant. Cette valeur de paramètre est utilisée comme contexte APC si l’appelant fournit un APC, ou est utilisée comme contexte d’achèvement si un objet d’achèvement d’E/S a été associé à l’objet file. Une fois l’opération terminée, soit le contexte APC est passé à l’APC, le cas échéant, soit le contexte d’achèvement est inclus dans le message d’achèvement que le Gestionnaire d’E/S publie sur l’objet d’achèvement d’E/S associé.

Ce paramètre est facultatif et peut être NULL. Elle doit être NULL si ApcRoutine a la valeur NULL et qu’aucun objet d’achèvement d’E/S n’est associé à l’objet file.

[out] IoStatusBlock

Pointeur vers une structure de IO_STATUS_BLOCK qui reçoit la status d’achèvement finale et des informations sur l’opération. Pour les appels réussis qui retournent des données, le nombre d’octets écrits dans OutputBuffer est retourné dans le membre Information de cette structure.

[in] FsControlCode

FSCTL_ codeXXX qui indique l’opération de contrôle du système de fichiers à effectuer. La valeur de ce paramètre détermine les formats et les longueurs requises de InputBuffer et OutputBuffer, ainsi que les paires de paramètres suivantes qui sont requises. Pour plus d’informations sur les codes FSCTL_XXX définis par le système, consultez la section « Remarques » de l’entrée de référence pour DeviceIoControl.

[in, optional] InputBuffer

Pointeur vers une mémoire tampon d’entrée allouée à l’appelant qui contient des informations spécifiques au périphérique à donner au pilote cible. Si FsControlCode spécifie une opération qui ne nécessite pas de données d’entrée, ce pointeur est facultatif et peut être NULL.

[in] InputBufferLength

Taille, en octets, de la mémoire tampon sur InputBuffer. Cette valeur est ignorée si InputBuffer a la valeur NULL.

[out, optional] OutputBuffer

Pointeur vers une mémoire tampon de sortie allouée par l’appelant dans laquelle les informations sont retournées à partir du pilote cible. Si FsControlCode spécifie une opération qui ne produit pas de données de sortie, ce pointeur est facultatif et peut être NULL.

[in] OutputBufferLength

Taille, en octets, de la mémoire tampon sur OutputBuffer. Cette valeur est ignorée si OutputBuffer a la valeur NULL.

Valeur retournée

NtFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des valeurs suivantes :

Notes

NtFsControlFile fournit une vue cohérente des données d’entrée et de sortie pour le système et les pilotes en mode noyau, tout en fournissant aux applications et aux pilotes sous-jacents une méthode dépendante du pilote pour spécifier une interface de communication.

Si l’appelant a ouvert le fichier pour les E/S asynchrones (sans FILE_SYNCHRONOUS_XXX create/open option set), l’événement spécifié, le cas échéant, est défini sur l’état signalé à la fin de l’opération de contrôle de l’appareil. Sinon, l’objet file spécifié par FileHandle est défini sur l’état signalé. Si un ApcRoutine a été spécifié, il est appelé avec les pointeurs ApcContext et IoStatusBlock .

Voici quelques-uns des codes FSCTL documentés pour les pilotes en mode noyau :

  • FSCTL_DELETE_REPARSE_POINT
  • FSCTL_GET_REPARSE_POINT
  • FSCTL_OPBATCH_ACK_CLOSE_PENDING
  • FSCTL_OPLOCK_BREAK_ACK_NO_2
  • FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
  • FSCTL_OPLOCK_BREAK_NOTIFY
  • FSCTL_REQUEST_BATCH_OPLOCK
  • FSCTL_REQUEST_FILTER_OPLOCK
  • FSCTL_REQUEST_OPLOCK_LEVEL_1
  • FSCTL_REQUEST_OPLOCK_LEVEL_2
  • FSCTL_SET_REPARSE_POINT
  • Pour plus d’informations sur les codes FSCTL_XXX définis par le système, consultez la section « Remarques » de l’entrée de référence pour DeviceIoControl.

    Pour plus d’informations sur les codes IOCTL_XXX définis par le système et sur la définition de valeurs IOCTL_XXX ou FSCTL_XXX spécifiques au pilote, consultez Utilisation de codes de contrôle d’E/S et Codes de contrôle d’entrée et de sortie de périphérique.

    Les minifiltres doivent utiliser FltFsControlFile au lieu de NtFsControlFile.

    Les appelants de NtFsControlFile doivent s’exécuter sur IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées**.

    Si l’appel à la fonction NtFsControlFile se produit en mode utilisateur, vous devez utiliser le nom « NtFsControlFile » au lieu de « ZwFsControlFile ».

    Pour les appels provenant de pilotes en mode noyau, les versions NtXXX et ZwXXX d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXXX et ZwXXX d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

    Spécifications