Partilhar via


código de controle FSCTL_DFS_GET_PKT_ENTRY_STATE

O código de controle FSCTL_DFS_GET_PKT_ENTRY_STATE pode obter as mesmas informações que a função NetDfsGetClientInfo , mas pode fornecer melhor desempenho em algumas configurações com altas latências para os servidores DFS. Não é recomendável usar o código de controle FSCTL_DFS_GET_PKT_ENTRY_STATE , a menos que haja problemas de desempenho.

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)        FSCTL_DFS_GET_PKT_ENTRY_STATE, // dwIoControlCode(LPDWORD)      lpInBuffer,         // input buffer
                    (DWORD)        nInBufferSize,      // size of input buffer
                    (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 o dispositivo. Para obter um identificador de dispositivo, chame a função CreateFile .

dwIoControlCode [in]

O código de controle da operação. Use FSCTL_DFS_GET_PKT_ENTRY_STATE para esta operação.

lpInBuffer

Endereço de uma estrutura DFS_GET_PKT_ENTRY_STATE_ARG e as cadeias de caracteres Unicode de 1 a 3 que se seguem.

nInBufferSize [in]

Tamanho, em bytes, do buffer apontado pelo parâmetro lpInBuffer .

lpOutBuffer [out]

Endereço de uma estrutura DFS_INFO_# e quaisquer cadeias de caracteres e estruturas apontadas pela estrutura DFS_INFO_# . A estrutura específica retornada depende do membro Level na estrutura DFS_GET_PKT_ENTRY_STATE_ARG passada no buffer de entrada.

nOutBufferSize [in]

Tamanho, em bytes, do buffer apontado pelo parâmetro lpOutBuffer . Devido às cadeias de caracteres e estruturas referenciadas pela estrutura DFS_INFO_# retornada que também estão no buffer de saída, esse buffer deve ser maior do que a estrutura DFS_INFO_# especificada.

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, mas pelo menos grande o suficiente para conter um DWORD, a chamada falhará, GetLastError retornará ERROR_MORE_DATA e o primeiro DWORD do buffer de saída conterá o tamanho que teria sido necessário. Se o buffer de saída não puder conter um DWORD , a chamada falhará com 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.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Cabeçalho
LmDfs.h (inclua LmDfs.h)

Confira também

Deviceiocontrol

NetDfsGetClientInfo