código de controle DA_GET_NFS_ATTRIBUTES
O código de controle DA_GET_NFS_ATTRIBUTES consulta informações adicionais sobre um compartilhamento NFS.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
BOOL
WINAPI
DeviceIoControl( (HANDLE) hDevice, // handle to device
(DWORD) DA_GET_NFS_ATTRIBUTES, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPDWORD) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
Parâmetros
-
hDevice [in]
-
Um identificador para um arquivo no compartilhamento NFS. Para obter esse identificador, chame a função CreateFile .
-
dwIoControlCode [in]
-
O código de controle da operação. Use DA_GET_NFS_ATTRIBUTES para esta operação.
-
lpInBuffer
-
Não usado com esta operação; defina como NULL.
-
nInBufferSize [in]
-
Não usado com esta operação; definido como zero.
-
lpOutBuffer [out]
-
Um ponteiro para o buffer de saída, que contém uma estrutura NFS_FILE_ATTRIBUTES . Para obter mais informações, consulte a seção Comentários.
-
nOutBufferSize [in]
-
O tamanho do buffer de saída em bytes.
-
lpBytesReturned [out]
-
Um ponteiro para uma variável que recebe o tamanho dos dados armazenados no buffer de saída, em bytes.
Se o buffer de saída for muito pequeno, a chamada falhará, GetLastError retornará ERROR_INSUFFICIENT_BUFFER e lpBytesReturned será zero.
Se lpOverlapped for NULL, lpBytesReturned não poderá ser NULL. Mesmo quando uma operação não retorna dados de saída e lpOutBuffer é NULL, DeviceIoControl usa lpBytesReturned. Após essa operação, o valor de lpBytesReturned não tem sentido.
Se lpOverlapped não for NULL, lpBytesReturned poderá ser NULL. Se esse parâmetro não for NULL e a operação retornar dados, lpBytesReturned não terá sentido até que a operação sobreposta seja concluída. Para recuperar o número de bytes retornados, chame GetOverlappedResult. Se o parâmetro hDevice estiver associado a uma porta de conclusão de E/S, você poderá recuperar o número de bytes retornados chamando GetQueuedCompletionStatus.
-
lpOverlapped [in]
-
Um ponteiro para uma estrutura OVERLAPPED .
Se hDevice foi aberto sem especificar FILE_FLAG_OVERLAPPED, lpOverlapped será ignorado.
Se hDevice foi aberto com o sinalizador FILE_FLAG_OVERLAPPED , a operação é executada como uma operação sobreposta (assíncrona). Nesse caso, lpOverlapped deve apontar para uma estrutura OVERLAPPED válida que contenha um identificador para um objeto de evento. Caso contrário, a função falhará de maneiras imprevisíveis.
Para operações sobrepostas, DeviceIoControl retorna imediatamente e o objeto de evento é sinalizado quando a operação é concluída. Caso contrário, a função não retornará até que a operação seja concluída ou ocorra um erro.
Valor retornado
Se a operação for concluída com êxito, DeviceIoControl retornará um valor diferente de zero.
Se a operação falhar ou estiver pendente, DeviceIoControl retornará zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Esse código de controle não tem nenhum arquivo de cabeçalho associado. Você deve definir o código de controle e as estruturas de dados da seguinte maneira.
#define DEVICE_DA_RDR 0x80000
#define DA_GET_NFS_ATTRIBUTES CTL_CODE(DEVICE_DA_RDR, 0x804, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _NFS_SPEC_DATA {
ULONG SpecData1;
ULONG SpecData2;
} NFS_SPEC_DATA, *PNFS_SPEC_DATA;
typedef struct _NFS_TIME {
ULONG Seconds;
ULONG nSeconds;
} NFS_TIME, *PNFS_TIME;
#define NFS_TYPE_REG 1
#define NFS_TYPE_DIR 2
#define NFS_TYPE_BLK 3
#define NFS_TYPE_CHR 4
#define NFS_TYPE_LNK 5
#define NFS_TYPE_SOCK 6
#define NFS_TYPE_FIFO 7
typedef struct _NFS_FILE_ATTRIBUTES {
ULONG FileType;
ULONG Mode;
ULONG NLink;
ULONG Uid;
ULONG Gid;
ULONGLONG Size;
ULONGLONG Used;
NFS_SPEC_DATA Rdev;
ULONGLONG Fsid;
ULONGLONG FileId;
NFS_TIME AccessTime;
NFS_TIME ModifyTime;
NFS_TIME ChangeTime;
} NFS_FILE_ATTRIBUTES, *PNFS_FILE_ATTRIBUTES;
typedef struct _DA_FILE_ATTRIBUTES {
NFS_FILE_ATTRIBUTES FileAttributes;
ULONG Version;
} DA_FILE_ATTRIBUTES, *PDA_FILE_ATTRIBUTES;
Os membros da estrutura podem ser descritos da seguinte maneira.
-
SpecData1
-
Um valor opaco que é usado para tipos de arquivo especiais, como arquivos especiais de bloco, especiais de caracteres e FIFO.
-
SpecData2
-
Um valor opaco que é usado para tipos de arquivo especiais, como arquivos especiais de bloco, especiais de caracteres e FIFO.
-
Segundos
-
Um valor de 64 bits que representa os segundos desde 1º de janeiro de 1970 (UTC).
-
nSeconds
-
O número de nanossegundos a serem adicionados ao membro Seconds .
-
Filetype
-
O tipo de arquivo NFS do compartilhamento.
Tipo de arquivo NFS Descrição NFS_TYPE_REG Um arquivo normal. NFS_TYPE_DIR Um diretório. NFS_TYPE_BLK Um arquivo especial de bloco. NFS_TYPE_CHR Um arquivo especial de caracteres. NFS_TYPE_LNK Um link simbólico. NFS_TYPE_SOCK Um soquete do Windows. NFS_TYPE_FIFO Um arquivo FIFO. -
Modo
-
O modo de arquivo.
-
NLink
-
O número de links para o compartilhamento.
-
Uid
-
O UID (identificador de usuário) do UNIX.
-
Gid
-
O GID (identificador de grupo) UNIX.
-
Tamanho
-
O tamanho do arquivo, em bytes.
-
Usado
-
O tamanho do arquivo usado, em bytes. Isso é o mesmo que o tamanho do arquivo.
-
Rdev
-
O identificador do dispositivo.
-
Fsid
-
O identificador do sistema de arquivos.
-
Idarquivo
-
O identificador de arquivo.
-
AccessTime
-
A hora do último acesso.
-
ModifyTime
-
A hora da última modificação.
-
ChangeTime
-
A hora da última alteração.
-
Fileattributes
-
Uma estrutura NFS_FILE_ATTRIBUTES .
Observação
Para obter descrições mais detalhadas dos membros dessa estrutura, consulte a estrutura gordurosa3 na Especificação de Protocolo NFS Versão 3 (conforme definido no RFC 1813).
-
Versão
-
Especifica se a conexão na qual o identificador para o compartilhamento NFS foi criado é sobre o protocolo NFS versão 2 ou NFS versão 3.
Valor Descrição 2 NFS Versão 2 3 NFS Versão 3
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Nenhum compatível |
Servidor mínimo com suporte |
Windows Server 2008 |
Fim do suporte ao cliente |
Nenhum compatível |
Fim do suporte ao servidor |
Windows Server 2008 R2 |
Confira também