Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El código de control DA_GET_NFS_ATTRIBUTES consulta información adicional sobre un recurso compartido NFS.
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) 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]
-
Identificador de un archivo en el recurso compartido NFS. Para obtener este identificador, llame a la función CreateFile .
-
dwIoControlCode [in]
-
Código de control de la operación. Use DA_GET_NFS_ATTRIBUTES para esta operación.
-
lpInBuffer
-
No se usa con esta operación; se establece en NULL.
-
nInBufferSize [in]
-
No se usa con esta operación; se establece en cero.
-
lpOutBuffer [out]
-
Puntero al búfer de salida, que contiene una estructura de NFS_FILE_ATTRIBUTES . Para obtener más información, vea la sección Comentarios.
-
nOutBufferSize [in]
-
Tamaño del búfer de salida, en bytes.
-
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, se produce un error en la llamada, GetLastError devuelve 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 contiene un identificador para un objeto de evento. De lo contrario, se produce un error en la función de maneras impredecibles.
En el caso de 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.
Comentarios
Este código de control no tiene ningún archivo de encabezado asociado. Debe definir el código de control y las estructuras de datos de la siguiente manera.
#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;
Los miembros de la estructura se pueden describir de la siguiente manera.
-
SpecData1
-
Valor opaco que se usa para tipos de archivo especiales, como archivos FIFO, especiales de caracteres y bloques especiales.
-
SpecData2
-
Valor opaco que se usa para tipos de archivo especiales, como archivos FIFO, especiales de caracteres y bloques especiales.
-
Segundos
-
Valor de 64 bits que representa los segundos desde el 1 de enero de 1970 (UTC).
-
nSeconds
-
Número de nanosegundos que se van a agregar al miembro Seconds .
-
Eltipo
-
Tipo de archivo NFS del recurso compartido.
Tipo de archivo NFS Descripción NFS_TYPE_REG Un archivo normal. NFS_TYPE_DIR Un directorio. NFS_TYPE_BLK Un archivo especial de bloque. NFS_TYPE_CHR Un archivo especial de caracteres. NFS_TYPE_LNK Vínculo simbólico. NFS_TYPE_SOCK Un socket de Windows. NFS_TYPE_FIFO Un archivo FIFO. -
Modo
-
Modo de archivo.
-
NLink
-
Número de vínculos al recurso compartido.
-
Uid
-
Identificador de usuario de UNIX (UID).
-
Gid
-
Identificador del grupo UNIX (GID).
-
Tamaño
-
Tamaño del archivo, en bytes.
-
Utilizado
-
Tamaño del archivo usado, en bytes. Este es el mismo que el tamaño del archivo.
-
Rdev
-
Identificador del dispositivo.
-
Fsid
-
Identificador del sistema de archivos.
-
FileId
-
Identificador de archivo.
-
AccessTime
-
Hora de último acceso.
-
ModifyTime
-
Hora de la última modificación.
-
ChangeTime
-
Hora del último cambio.
-
FileAttributes
-
Estructura de NFS_FILE_ATTRIBUTES .
Nota:
Para obtener descripciones más detalladas de los miembros de esta estructura, consulte la estructura fatr3 en la especificación del protocolo NFS versión 3 (como se define en RFC 1813).
-
Versión
-
Especifica si la conexión en la que se creó el identificador del recurso compartido NFS se realiza a través del protocolo NFS Versión 2 o NFS versión 3.
Valor Descripción 2 NFS versión 2 3 NFS versión 3
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible |
No se admite ninguno |
| Servidor mínimo compatible |
Windows Server 2008 |
| Fin de compatibilidad de cliente |
No se admite ninguno |
| Fin de compatibilidad de servidor |
Windows Server 2008 R2 |
Consulte también