Skip to content

st:8000001C #1

Description

@Myname124

你好,我把你的代码修改成了内核程序下可以使用,下面是我的代码SOCKET AfdSocket::WSPSocket(int AddressFamily, int SocketType, int Protocol)
{
if (AddressFamily == AF_UNSPEC && SocketType == 0 && Protocol == 0) {
return INVALID_SOCKET;
}
//进行基础数据设置
if (AddressFamily == AF_UNSPEC) {
AddressFamily = AF_INET;
}
if (SocketType == 0)
{
switch (Protocol)
{
case IPPROTO_TCP:
SocketType = SOCK_STREAM;
break;
case IPPROTO_UDP:
SocketType = SOCK_DGRAM;
break;
case IPPROTO_RAW:
SocketType = SOCK_RAW;
break;
default:
SocketType = SOCK_STREAM;
break;
}
}
if (Protocol == 0)
{
switch (SocketType)
{
case SOCK_STREAM:
Protocol = IPPROTO_TCP;
break;
case SOCK_DGRAM:
Protocol = IPPROTO_UDP;
break;
case SOCK_RAW:
Protocol = IPPROTO_RAW;
break;
default:
Protocol = IPPROTO_TCP;
break;
}
}

NTSTATUS st = STATUS_UNSUCCESSFUL;
OBJECT_ATTRIBUTES ObjectAttributes = { 0 };
InitializeObjectAttributes(&ObjectAttributes, &tcpip, OBJ_CASE_INSENSITIVE | OBJ_INHERIT | OBJ_KERNEL_HANDLE, NULL, NULL);
HANDLE Handle = NULL;
IO_STATUS_BLOCK io = { NULL };

UCHAR EaBuffer[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x00,
	0x41, 0x66, 0x64, 0x4F, 0x70, 0x65, 0x6E, 0x50,
	0x61, 0x63, 0x6B, 0x65, 0x74, 0x58, 0x58, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
	0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
memmove((PVOID)((__int64)EaBuffer + 32), &AddressFamily, 0x4);
memmove((PVOID)((__int64)EaBuffer + 36), &SocketType, 0x4);
memmove((PVOID)((__int64)EaBuffer + 40), &Protocol, 0x4);
if (Protocol == IPPROTO_UDP)
{
	memmove((PVOID)((__int64)EaBuffer + 24), &Protocol, 0x4);
}

st = ZwCreateFile(&Handle, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, &ObjectAttributes, &io, 0, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, FILE_OPEN_IF, 0, EaBuffer,
	sizeof(EaBuffer));
if (st != STATUS_SUCCESS) {
	DbgPrint("st:%X\r\n",st);
	return INVALID_SOCKET;
}
else {
	
	return (SOCKET)Handle;
}

}
大部分电脑都是没有问题的,今天我在运用时候发现有一台电脑会返回st:0x8000001C的错误代码,请问这是什么问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions