81 lines
1.2 KiB
C
81 lines
1.2 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1992 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ndisapi.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Since we cannot include windows.h and ntos.h in the same C file. Sigh !!!
|
||
|
|
||
|
Author:
|
||
|
|
||
|
JameelH
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel mode, FSD
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Aug 1997 JameelH Initial version
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <ntosp.h>
|
||
|
|
||
|
extern
|
||
|
VOID
|
||
|
XSetLastError(
|
||
|
IN ULONG Error
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
InitUnicodeString(
|
||
|
IN PUNICODE_STRING DestinationString,
|
||
|
IN PCWSTR SourceString
|
||
|
)
|
||
|
{
|
||
|
RtlInitUnicodeString(DestinationString, SourceString);
|
||
|
}
|
||
|
|
||
|
NTSTATUS
|
||
|
AppendUnicodeStringToString(
|
||
|
IN PUNICODE_STRING Destination,
|
||
|
IN PUNICODE_STRING Source
|
||
|
)
|
||
|
{
|
||
|
return (RtlAppendUnicodeStringToString(Destination, Source));
|
||
|
}
|
||
|
|
||
|
HANDLE
|
||
|
OpenDevice(
|
||
|
IN PUNICODE_STRING DeviceName
|
||
|
)
|
||
|
{
|
||
|
OBJECT_ATTRIBUTES ObjAttr;
|
||
|
NTSTATUS Status;
|
||
|
IO_STATUS_BLOCK IoStsBlk;
|
||
|
HANDLE Handle;
|
||
|
|
||
|
InitializeObjectAttributes(&ObjAttr,
|
||
|
DeviceName,
|
||
|
OBJ_CASE_INSENSITIVE,
|
||
|
NULL,
|
||
|
NULL);
|
||
|
|
||
|
Status = NtOpenFile(&Handle,
|
||
|
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
|
||
|
&ObjAttr,
|
||
|
&IoStsBlk,
|
||
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||
|
FILE_SYNCHRONOUS_IO_NONALERT);
|
||
|
if (Status != STATUS_SUCCESS)
|
||
|
{
|
||
|
XSetLastError(RtlNtStatusToDosError(Status));
|
||
|
}
|
||
|
return(Handle);
|
||
|
}
|