Partilhar via


Sobre as FSCTLs

Este artigo descreve códigos de controle do sistema de arquivos (FSCTLs) e como eles são usados no nível do kernel no Windows. Para obter informações sobre FSCTLs no modo de usuário, consulte Controle de entrada e saída de dispositivo.

Os códigos de controle do sistema de arquivos (FSCTLs) podem ser considerados como códigos de controle de E/S especiais (IOCTLs). Enquanto as IOCTLs são usadas para executar operações de controle de dispositivos , as FSCTLs são usadas para executar operações do sistema de arquivos . As FSCTLs podem ser usadas para:

  • Altere ou consulte o comportamento do sistema de arquivos.
  • Defina ou consulte metadados associados a um arquivo específico ou ao próprio sistema de arquivos.

Os módulos em modo núcleo na pilha do sistema de arquivos, como sistemas de arquivos e drivers de minifiltro do sistema de arquivos, podem ver e emitir comandos FSCTLs. Assim, eles são capazes de inspecionar, modificar ou redirecionar operações.

Um processo invoca um FSCTL em um identificador para executar uma ação contra o arquivo ou diretório associado ao identificador. Quando um servidor recebe uma solicitação FSCTL, ele usa as informações na solicitação para executar a ação solicitada. A forma como um servidor executa a ação solicitada por um FSCTL depende da implementação.

Algumas FSCTLs genéricas definidas pelo sistema podem ser invocadas em toda a rede. FSCTLs genéricos são usados pelos sistemas de arquivos locais ou por vários componentes dentro do sistema. Qualquer aplicativo, serviço ou driver pode definir FSCTLs privadas. A maioria dos FSCTLs privados são usados localmente nas pilhas de drivers internos e não fluem pelo fio. No entanto, se um componente permitir que suas FSCTLs privadas fluam através do fio, esse componente é responsável por garantir que as FSCTLs e as estruturas de dados associadas sejam documentadas.

Emitindo um FSCTL no modo kernel

Geralmente, as FSCTLs são emitidas através de uma das seguintes funções de modo kernel:

  • FltFsControlFile, que é uma função fornecida pelo sistema implementada pelo FltMgr. Os drivers de minifiltro fazem parte da estrutura do Gerenciador de Filtros, portanto, devem usar essa função para emitir um FSCTL para o sistema de arquivos ou outros minifiltros na pilha.

  • ZwFsControlFile, que é uma função fornecida pelo sistema implementada pelo kernel do Windows. Componentes de modo kernel diferentes dos minifiltros do sistema de arquivos podem usar essa função para emitir um FSCTL.

Informações específicas do FSCTL

Consulte os artigos FSCTL_XXX seguintes a este artigo para obter informações sobre FSCTLs específicas.