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 de 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 de SHARE_ACCESS associada a FileObject . Os drivers devem tratar essa estrutura como opaca.
Valor de retorno
Nenhum
Observações
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 comum de dados de acesso a compartilhamento associada a FileObject. Os chamadores devem salvar esse ponteiro para uso posterior ao atualizar o acesso ou fechar o arquivo.
Geralmente, 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 FileObjectfornecido.
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 |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm) |