Код элемента управления DA_GET_NFS_ATTRIBUTES
Код элемента управления DA_GET_NFS_ATTRIBUTES запрашивает дополнительные сведения о общей папке NFS.
Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.
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
Параметры
-
hDevice [in]
-
Дескриптор файла в общей папке NFS. Чтобы получить этот дескриптор, вызовите функцию CreateFile .
-
dwIoControlCode [in]
-
Код элемента управления для операции. Для этой операции используйте DA_GET_NFS_ATTRIBUTES .
-
lpInBuffer
-
Не используется с этой операцией; задайте значение NULL.
-
nInBufferSize [in]
-
Не используется с этой операцией; Значение равно нулю.
-
lpOutBuffer [out]
-
Указатель на выходной буфер, содержащий структуру NFS_FILE_ATTRIBUTES . Дополнительные сведения см. в разделе «Примечания».
-
nOutBufferSize [in]
-
Размер выходного буфера в байтах.
-
lpBytesReturned [out]
-
Указатель на переменную, которая получает размер данных, хранящихся в выходном буфере, в байтах.
Если выходной буфер слишком мал, вызов завершается ошибкой, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а значение lpBytesReturned равно нулю.
Если lpOverlapped имеет значение NULL, lpBytesReturned не может иметь значение NULL. Даже если операция не возвращает выходные данные, а lpOutBuffer имеет значение NULL, DeviceIoControl использует lpBytesReturned. После такой операции значение lpBytesReturned не имеет смысла.
Если значение lpOverlapped не равно NULL, lpBytesReturned может иметь значение NULL. Если этот параметр не имеет значения NULL и операция возвращает данные, функция lpBytesReturned не имеет смысла, пока не завершится перекрывающаяся операция. Чтобы получить количество возвращенных байтов, вызовите Метод GetOverlappedResult. Если параметр hDevice связан с портом завершения ввода-вывода, можно получить количество возвращаемых байтов, вызвав Метод GetQueuedCompletionStatus.
-
lpOverlapped [in]
-
Указатель на структуру OVERLAPPED .
Если hDevice был открыт без указания FILE_FLAG_OVERLAPPED, lpOverlapped игнорируется.
Если hDevice был открыт с флагом FILE_FLAG_OVERLAPPED , операция выполняется как перекрываемая (асинхронная) операция. В этом случае lpOverlapped должен указывать на допустимую структуру OVERLAPPED , содержащую дескриптор объекта события. В противном случае функция завершается сбоем непредсказуемым образом.
Для перекрывающихся операций DeviceIoControl возвращает немедленно, а объект события получает сигнал о завершении операции. В противном случае функция не возвращается, пока операция не будет завершена или не возникнет ошибка.
Возвращаемое значение
Если операция завершается успешно, DeviceIoControl возвращает ненулевое значение.
Если операция завершается сбоем или находится в состоянии ожидания, DeviceIoControl возвращает ноль. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Этот код элемента управления не имеет связанного файла заголовка. Код элемента управления и структуры данных необходимо определить следующим образом.
#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;
Элементы структуры можно описать следующим образом.
-
SpecData1
-
Непрозрачное значение, используемое для файлов специальных типов, таких как блочные, символьные и FIFO-файлы.
-
SpecData2
-
Непрозрачное значение, используемое для файлов специальных типов, таких как блочные, символьные и FIFO-файлы.
-
Секунд
-
64-разрядное значение, представляющее секунды с 1 января 1970 года (UTC).
-
nSeconds
-
Число наносекунд, добавляемых к элементу Seconds .
-
Filetype
-
Тип файла NFS общей папки.
Тип файла NFS Описание NFS_TYPE_REG Обычный файл. NFS_TYPE_DIR Каталог. NFS_TYPE_BLK Специальный файл блока. NFS_TYPE_CHR Специальный файл символов. NFS_TYPE_LNK Символьная ссылка. NFS_TYPE_SOCK Сокет Windows. NFS_TYPE_FIFO ФАЙЛ FIFO. -
Режим
-
Режим файла.
-
NLink
-
Количество ссылок на общую папку.
-
Uid
-
Идентификатор пользователя UNIX (UID).
-
Gid
-
Идентификатор группы UNIX (GID).
-
Размер
-
Размер файла в байтах.
-
Использовать
-
Используемый размер файла в байтах. Это то же, что и размер файла.
-
Rdev
-
Идентификатор устройства.
-
Fsid
-
Идентификатор файловой системы.
-
FileId
-
Идентификатор файла.
-
AccessTime
-
Время последнего доступа.
-
ModifyTime
-
Время последнего изменения.
-
ChangeTime
-
Время последнего изменения.
-
Атрибуты FileAttributes
-
Структура NFS_FILE_ATTRIBUTES .
Примечание
Более подробное описание элементов этой структуры см. в разделе Структура жирных 3 в спецификации протокола NFS версии 3 (как определено в RFC 1813).
-
Версия
-
Указывает, установлено ли подключение, на котором был создан дескриптор общей папки NFS, по протоколу NFS версии 2 или NFS версии 3.
Значение Описание 2 NFS версии 2 3 NFS версии 3
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Ни одна версия не поддерживается |
Минимальная версия сервера |
Windows Server 2008 |
Окончание поддержки клиентов |
Ни одна версия не поддерживается |
Прекращение поддержки сервера |
Windows Server 2008 R2 |
См. также раздел