tangled
alpha
login
or
join now
huwcampbell.com
/
reactos
0
fork
atom
Reactos
0
fork
atom
overview
issues
pulls
pipelines
[WS2_32_APITEST] Add additional testcases. CORE-13067
Mark Jansen
8 years ago
47da4337
f204f24c
+22
1 changed file
expand all
collapse all
unified
split
modules
rostests
apitests
ws2_32
open_osfhandle.c
+22
modules/rostests/apitests/ws2_32/open_osfhandle.c
reviewed
···
6
6
*/
7
7
8
8
#include "ws2_32.h"
9
9
+
#include <ndk/iofuncs.h>
10
10
+
#include <ndk/obfuncs.h>
9
11
#include <io.h>
10
12
#include <fcntl.h>
11
13
14
14
+
#define WINVER_WIN8 0x0602
12
15
13
16
static void run_open_osfhandle(void)
14
17
{
15
18
DWORD type;
16
19
int handle, err;
20
20
+
FILE_FS_DEVICE_INFORMATION DeviceInfo;
21
21
+
IO_STATUS_BLOCK StatusBlock;
22
22
+
NTSTATUS Status;
23
23
+
17
24
SOCKET fd = WSASocketA(AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
18
25
ok (fd != INVALID_SOCKET, "Invalid socket\n");
19
26
if (fd == INVALID_SOCKET)
···
21
28
22
29
type = GetFileType((HANDLE)fd);
23
30
ok(type == FILE_TYPE_PIPE, "Expected type FILE_TYPE_PIPE, was: %lu\n", type);
31
31
+
32
32
+
Status = NtQueryVolumeInformationFile((HANDLE)fd, &StatusBlock, &DeviceInfo, sizeof(DeviceInfo), FileFsDeviceInformation);
33
33
+
ok(Status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got 0x%lx\n", Status);
34
34
+
if (Status == STATUS_SUCCESS)
35
35
+
{
36
36
+
RTL_OSVERSIONINFOEXW rtlinfo = { sizeof(rtlinfo), 0 };
37
37
+
ULONG Characteristics;
38
38
+
DWORD dwWinVersion;
39
39
+
ok(DeviceInfo.DeviceType == FILE_DEVICE_NAMED_PIPE, "Expected FILE_DEVICE_NAMED_PIPE, got: 0x%lx\n", DeviceInfo.DeviceType);
40
40
+
41
41
+
RtlGetVersion((PRTL_OSVERSIONINFOW)&rtlinfo);
42
42
+
dwWinVersion = (rtlinfo.dwMajorVersion << 8) | rtlinfo.dwMinorVersion;
43
43
+
Characteristics = dwWinVersion >= WINVER_WIN8 ? 0x20000 : 0;
44
44
+
ok(DeviceInfo.Characteristics == Characteristics, "Expected 0x%lx, got: 0x%lx\n", Characteristics, DeviceInfo.Characteristics);
45
45
+
}
24
46
25
47
handle = _open_osfhandle(fd, _O_BINARY | _O_RDWR);
26
48
err = *_errno();