126{
127 PDEVICE_OBJECT deviceObject;
131 UNICODE_STRING uniNameString, uniDOSString;
132
133
134
135
138 return STATUS_INSUFFICIENT_RESOURCES;
140
141
142
143
144 RtlInitUnicodeString(&uniNameString, NameBuffer);
145 RtlInitUnicodeString(&uniDOSString, DOSNameBuffer);
146
147 status = IoCreateDevice(DriverObject, 0,
148 &uniNameString,
149 FILE_DEVICE_UNKNOWN,
150 0,
FALSE, &deviceObject);
151
152 if(!NT_SUCCESS(status))
153 return status;
154
155 status = IoCreateSymbolicLink (&uniDOSString, &uniNameString);
156
157 if (!NT_SUCCESS(status))
158 return status;
159
160
161
162
163
166 return STATUS_SUCCESS;
167}
UCHAR IOPM[IOPM_SIZE]
Definition giveio.c:28
NTSTATUS GiveioCreateDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition giveio.c:98
#define DEVICE_NAME_STRING
Definition giveio.c:16
IOPM * IOPM_local
Definition giveio.c:35
VOID GiveioUnload(IN PDRIVER_OBJECT DriverObject)
Definition giveio.c:55
#define FALSE
Definition mesh.c:45
#define L(s)
Definition I18N.hpp:18
LONG NTSTATUS
Definition hid.c:26