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 |
|