Compartir a través de


FSCTL_DFS_GET_PKT_ENTRY_STATE código de control

El código de control FSCTL_DFS_GET_PKT_ENTRY_STATE puede obtener la misma información que la función NetDfsGetClientInfo , pero puede proporcionar un mejor rendimiento en algunas configuraciones con latencias elevadas en los servidores DFS. No se recomienda usar el código de control de FSCTL_DFS_GET_PKT_ENTRY_STATE a menos que haya problemas de rendimiento.

Para realizar esta operación, llame a la función DeviceIoControl con los parámetros siguientes.

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]

Identificador del dispositivo. Para obtener un identificador de dispositivo, llame a la función CreateFile .

dwIoControlCode [in]

Código de control para la operación. Use FSCTL_DFS_GET_PKT_ENTRY_STATE para esta operación.

lpInBuffer

Dirección de una estructura DFS_GET_PKT_ENTRY_STATE_ARG y las cadenas Unicode 1-3 siguientes.

nInBufferSize [in]

Tamaño, en bytes, del búfer al que apunta el parámetro lpInBuffer .

lpOutBuffer [out]

Dirección de una estructura DFS_INFO_# y las cadenas y estructuras a las que apunta la estructura DFS_INFO_# . La estructura específica devuelta depende del miembro Level de la estructura de DFS_GET_PKT_ENTRY_STATE_ARG pasada en el búfer de entrada.

nOutBufferSize [in]

Tamaño, en bytes, del búfer al que apunta el parámetro lpOutBuffer . Debido a las cadenas y estructuras a las que hace referencia la estructura de DFS_INFO_# devuelta que también están en el búfer de salida, este búfer debe ser mayor que la estructura de DFS_INFO_# especificada.

lpBytesReturned [out]

Puntero a una variable que recibe el tamaño de los datos almacenados en el búfer de salida, en bytes.

Si el búfer de salida es demasiado pequeño, pero al menos lo suficientemente grande como para contener un DWORD, se produce un error en la llamada, GetLastError devuelve ERROR_MORE_DATA y el primer DWORD del búfer de salida contiene el tamaño que se habría requerido. Si el búfer de salida no puede contener un DWORD , se produce un error en la llamada con ERROR_INSUFFICIENT_BUFFER y lpBytesReturned es cero.

Si lpOverlapped es NULL, lpBytesReturned no puede ser NULL. Incluso cuando una operación no devuelve datos de salida y lpOutBuffer es NULL, DeviceIoControl usa lpBytesReturned. Después de esta operación, el valor de lpBytesReturned no tiene sentido.

Si lpOverlapped no es NULL, lpBytesReturned puede ser NULL. Si este parámetro no es NULL y la operación devuelve datos, lpBytesReturned no tiene sentido hasta que se haya completado la operación superpuesta. Para recuperar el número de bytes devueltos, llame a GetOverlappedResult. Si el parámetro hDevice está asociado a un puerto de finalización de E/S, puede recuperar el número de bytes devueltos llamando a GetQueuedCompletionStatus.

lpOverlapped [in]

Puntero a una estructura SUPERPUESTA .

Si hDevice se abrió sin especificar FILE_FLAG_OVERLAPPED, se omite lpOverlapped .

Si hDevice se abrió con la marca FILE_FLAG_OVERLAPPED , la operación se realiza como una operación superpuesta (asincrónica). En este caso, lpOverlapped debe apuntar a una estructura SUPERPUESTA válida que contenga un identificador para un objeto de evento. De lo contrario, se produce un error en la función de maneras impredecibles.

Para las operaciones superpuestas, DeviceIoControl devuelve inmediatamente y el objeto de evento se señala cuando se ha completado la operación. De lo contrario, la función no devuelve hasta que se haya completado la operación o se produzca un error.

Valor devuelto

Si la operación se completa correctamente, DeviceIoControl devuelve un valor distinto de cero.

Si se produce un error en la operación o está pendiente, DeviceIoControl devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
LmDfs.h (incluya LmDfs.h)

Consulte también

DeviceIoControl

NetDfsGetClientInfo