阅读:1529回复:1
看这个TDI Client的代码为什么会出错??
......
NTSTATUS CreateConnection(PHANDLE Handle, PFILE_OBJECT *FileObject) { NTSTATUS Status; UNICODE_STRING Name; OBJECT_ATTRIBUTES Attr; IO_STATUS_BLOCK IoStatus; CHAR Buffer[sizeof(FILE_FULL_EA_INFORMATION) + TDI_CONNECTION_CONTEXT_LENGTH]; PFILE_FULL_EA_INFORMATION Ea = (PFILE_FULL_EA_INFORMATION)ExAllocatePool(NonPagedPool, sizeof(FILE_FULL_EA_INFORMATION) + TDI_CONNECTION_CONTEXT_LENGTH);; RtlInitUnicodeString(&Name, L\"\\\\Device\\\\Tcp\"); InitializeObjectAttributes(&Attr, &Name, OBJ_CASE_INSENSITIVE, 0, 0); Ea->NextEntryOffset = 0; Ea->Flags = 0; Ea->EaNameLength = TDI_CONNECTION_CONTEXT_LENGTH; Ea->EaValueLength = 0; RtlCopyMemory(Ea->EaName, TdiConnectionContext, Ea->EaNameLength + 1); Status = ZwCreateFile(Handle, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, &Attr, &IoStatus, 0, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_OPEN, 0, Ea, sizeof(Buffer)); ExFreePool((PVOID)Ea); if (!NT_SUCCESS(Status)) { DbgPrint(\"ZwCreateFile failed!\\n\"); return Status; } return ObReferenceObjectByHandle(*Handle, GENERIC_READ | GENERIC_WRITE, 0, KernelMode, (PVOID *)FileObject, 0); } ...... ZwCreateFile老是不成功,返回值为0x80000014,但我不知道是哪里错了~~ 请各位指点~~ |
|
沙发#
发布于:2004-09-28 14:43
我也遇到同样的问题,不知你解决了没有?
|
|