implement user mode catchable exceptions, refactor system status codes to use NTLSTATUS_ prefix, update build scripts to use shared literal macros for linker arguments, update named queue lifetime cleanup to include KeNamedQueueUnpublishHandle.
This commit is contained in:
1 parent
1f5477cf66
commit
b7fcfce6f7
140 files changed
+7649
-3943
No files matched your search
@@ -73,7 +73,7 @@ static void check_ipv4_resolve(void) {
|
||||
req.AddressSizeInOut = &addressSize;
|
||||
|
||||
uint32_t status = SysResolveHost(&req);
|
||||
if (status != STATUS_SUCCESS) fail_status("resolve ipv4", status);
|
||||
if (status != NTLSTATUS_SUCCESS) fail_status("resolve ipv4", status);
|
||||
if (addressSize != sizeof(address)) fail("resolve ipv4 size mismatch");
|
||||
if (address.Family != SYS_AF_INET || address.Size != sizeof(address)) fail("resolve ipv4 tag mismatch");
|
||||
if (address.Address[0] != 127 || address.Address[1] != 0 || address.Address[2] != 0 || address.Address[3] != 1)
|
||||
@@ -93,7 +93,7 @@ static void check_ipv6_resolve(void) {
|
||||
req.AddressSizeInOut = &addressSize;
|
||||
|
||||
uint32_t status = SysResolveHost(&req);
|
||||
if (status != STATUS_SUCCESS) fail_status("resolve ipv6", status);
|
||||
if (status != NTLSTATUS_SUCCESS) fail_status("resolve ipv6", status);
|
||||
if (addressSize != sizeof(address)) fail("resolve ipv6 size mismatch");
|
||||
if (address.Family != SYS_AF_INET6 || address.Size != sizeof(address)) fail("resolve ipv6 tag mismatch");
|
||||
for (int i = 0; i < 15; i++) {
|
||||
@@ -107,10 +107,10 @@ static void check_socket_address_validation(void) {
|
||||
uint32_t ipv4 = 0;
|
||||
uint32_t ipv6 = 0;
|
||||
uint32_t status = SysCreateSocket(SYS_AF_INET, SYS_SOCK_DGRAM, SYS_IPPROTO_UDP, &ipv4);
|
||||
if (status != STATUS_SUCCESS) fail_status("create ipv4 udp", status);
|
||||
if (status != NTLSTATUS_SUCCESS) fail_status("create ipv4 udp", status);
|
||||
|
||||
status = SysCreateSocket(SYS_AF_INET6, SYS_SOCK_DGRAM, SYS_IPPROTO_UDP, &ipv6);
|
||||
if (status != STATUS_SUCCESS) fail_status("create ipv6 udp", status);
|
||||
if (status != NTLSTATUS_SUCCESS) fail_status("create ipv6 udp", status);
|
||||
|
||||
SYS_SOCKET_ADDRESS ipv4Address;
|
||||
memset(&ipv4Address, 0, sizeof(ipv4Address));
|
||||
@@ -128,10 +128,16 @@ static void check_socket_address_validation(void) {
|
||||
SYS_SOCKET_ADDRESS badSize = ipv6Address;
|
||||
badSize.Size = sizeof(badSize) - 1;
|
||||
status = SysBindSocket(ipv6, &badSize, sizeof(badSize));
|
||||
if (status == STATUS_SUCCESS) fail("bind accepted wrong ipv6 size");
|
||||
if (status != NTLSTATUS_INVALID_PARAMETER) fail_status("bind wrong struct size", status);
|
||||
|
||||
status = SysBindSocket(ipv6, &ipv6Address, sizeof(ipv6Address) - 1);
|
||||
if (status != NTLSTATUS_BUFFER_TOO_SMALL) fail_status("bind short buffer size", status);
|
||||
|
||||
status = SysBindSocket(ipv6, &ipv6Address, sizeof(ipv6Address) + 1);
|
||||
if (status != NTLSTATUS_INVALID_PARAMETER) fail_status("bind oversized buffer size", status);
|
||||
|
||||
status = SysConnectSocket(ipv4, &ipv6Address, sizeof(ipv6Address));
|
||||
if (status == STATUS_SUCCESS) fail("connect accepted wrong address family");
|
||||
if (status == NTLSTATUS_SUCCESS) fail("connect accepted wrong address family");
|
||||
|
||||
SysCloseHandle(ipv4);
|
||||
SysCloseHandle(ipv6);
|
||||
|
||||
Reference in new issue
Block a user