Função IoSetShareAccess (wdm.h)
A rotina IoSetShareAccess define os direitos de acesso para compartilhar o objeto de arquivo fornecido.
Sintaxe
void IoSetShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out] PFILE_OBJECT FileObject,
[out] PSHARE_ACCESS ShareAccess
);
Parâmetros
[in] DesiredAccess
Especifica um valor ACCESS_MASK que representa o tipo de acesso solicitado para o FileObject. Consulte IoCreateFile para obter uma lista completa de sinalizadores DesiredAccess definidos pelo sistema.
[in] DesiredShareAccess
Especifica o tipo de acesso de compartilhamento a ser definido para o objeto de arquivo. Esse valor pode ser zero ou qualquer combinação do seguinte:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
Ponteiro para o objeto de arquivo cujo acesso de compartilhamento está sendo definido ou redefinido.
[out] ShareAccess
Ponteiro para a estrutura SHARE_ACCESS associada a FileObject. Os drivers devem tratar essa estrutura como opaca.
Retornar valor
Nenhum
Comentários
Somente drivers de modo kernel de nível mais alto devem chamar essa rotina. A chamada deve ocorrer no contexto do primeiro thread que tenta abrir o FileObject.
Essa rotina define o acesso e o compartilhamento de informações de acesso quando o FileObject é aberto pela primeira vez. Ele retorna um ponteiro para a estrutura de dados de acesso de compartilhamento comum associada a FileObject. Os chamadores devem salvar esse ponteiro para uso posterior ao atualizar o acesso ou fechar o arquivo.
Em geral, os FSDs (drivers do sistema de arquivos) são mais propensos a chamar essa rotina. No entanto, outros drivers de nível mais alto podem chamar IoSetShareAccess para controlar o tipo de acesso permitido a um objeto de dispositivo criado pelo driver associado ao FileObject fornecido.
IoSetShareAccess não é uma operação atômica. Portanto, os drivers que chamam essa rotina devem proteger o objeto de arquivo compartilhado passado para IoSetShareAccess por meio de algum tipo de bloqueio, como um mutex ou um bloqueio de recurso, a fim de evitar a corrupção das contagens de acesso compartilhado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm) |