IRP_MJ_QUERY_SECURITY (FS e drivers de filtro)
Quando enviado
O Gerenciador de E/S envia a solicitação de IRP_MJ_QUERY_SECURITY. Ele pode ser enviado, por exemplo, quando um aplicativo de modo de usuário tiver chamado uma função Win32, como GetSecurityInfo.
Operação: Drivers do sistema de arquivos
O driver do sistema de arquivos deve extrair e decodificar o objeto de arquivo para determinar se ele representa um arquivo de usuário ou diretório aberto. Se isso acontecer, o driver deverá processar a consulta e concluir o IRP. Caso contrário, o driver deverá concluir o IRP conforme apropriado sem processar a consulta.
Operação: Drivers de filtro do sistema de arquivos herdado
O driver de filtro deve passar esse IRP para o driver mais baixo na pilha.
Parâmetros
Um sistema de arquivos ou driver de filtro chama IoGetCurrentIrpStackLocation para o IRP fornecido para obter um ponteiro para seu próprio local de pilha no IRP. Nos parâmetros a seguir, Irp aponta para o IRP e IrpSp aponta para o IO_STACK_LOCATION. O driver pode usar as informações definidas nos seguintes membros do IRP e no local da pilha IRP para processar uma solicitação de segurança de consulta:
DeviceObject é um ponteiro para o objeto de dispositivo de destino.
Irp->O IoStatus aponta para uma estrutura de IO_STATUS_BLOCK que recebe o status de conclusão final e informações sobre a operação solicitada.
Irp->UserBuffer aponta para um buffer de saída fornecido pelo chamador que recebe uma cópia do descritor de segurança do objeto especificado. O processo de chamada deve ter o direito de exibir os aspectos especificados do status de segurança do objeto. A estrutura SECURITY_DESCRIPTOR é retornada no formato auto-relativo.
IrpSp->FileObject aponta para o objeto de arquivo associado a DeviceObject.
No Windows XP e posterior, o objeto de arquivo pode representar um fluxo de dados nomeado. Para obter mais informações sobre fluxos de dados nomeados, consulte FILE_STREAM_INFORMATION.
O parâmetro IrpSp-FileObject> contém um ponteiro para o campo RelatedFileObject, que também é uma estrutura FILE_OBJECT. O campo RelatedFileObject da estrutura FILE_OBJECT não é válido durante o processamento de IRP_MJ_QUERY_SECURITY e não deve ser usado.
IrpSp->MajorFunction está definido como IRP_MJ_QUERY_SECURITY.
IrpSp->Parameters.QuerySecurity.Length é o tamanho, em bytes, do buffer apontado pelo parâmetro Irp-UserBuffer>.
IrpSp->Parameters.QuerySecurity.SecurityInformation aponta para a estrutura SECURITY_INFORMATION da operação. Esse valor pode ser uma combinação válida dos bits a seguir.
Valor de SecurityInformation Significado OWNER_SECURITY_INFORMATION Indica que o identificador de proprietário do objeto está sendo consultado. Requer acesso READ_CONTROL. GROUP_SECURITY_INFORMATION Indica que o identificador de grupo primário do objeto está sendo consultado. Requer acesso READ_CONTROL. DACL_SECURITY_INFORMATION Indica que a DACL (lista de controle de acesso discricionário) do objeto está sendo consultada. Requer acesso READ_CONTROL. SACL_SECURITY_INFORMATION Indica que a ACL do sistema (SACL) do objeto está sendo consultada. Requer acesso ACCESS_SYSTEM_SECURITY.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de