Compartilhar via


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)

Confira também

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess