Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1529回复:1

看这个TDI Client的代码为什么会出错??

楼主#
更多 发布于:2003-04-18 17:52
......
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,但我不知道是哪里错了~~ 请各位指点~~
bodajingshen000
驱动牛犊
驱动牛犊
  • 注册日期2004-04-07
  • 最后登录2009-01-04
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-28 14:43
我也遇到同样的问题,不知你解决了没有?
游客

返回顶部