IoCreateSymbolicLink Fails In STATUS_OBJECT_TYPE_MISMATCH

Hello guys!

I have been working on a windows driver kmdf in assembler (FASM). After succeding to create a Device (IoCreateDevice), the driver fails to create a symbolic link (IoCreateSymbolicLink). It fails with error code STATUS_OBJECT_TYPE_MISMATCH (0xC0000024). What does this mean? SymbolicLinkName and DeviceName are passed as arguments correctly.

Thanks in advance.

xxxxx@gmail.com wrote:

I have been working on a windows driver kmdf in assembler (FASM).

Why? Honestly, there’s really no good reason to do that any more.

After succeding to create a Device (IoCreateDevice), the driver fails to create a symbolic link (IoCreateSymbolicLink). It fails with error code STATUS_OBJECT_TYPE_MISMATCH (0xC0000024). What does this mean? SymbolicLinkName and DeviceName are passed as arguments correctly.

Are you absolutely sure the device name you passed to IoCreateDevice is
the same one you pass to IoCreateSymbolicLink? Are you sure you haven’t
swapped the arguments to IoCreateSymbolicLink? Is your device name in
the \Device tree?

Are you doing a 32-bit driver or a 64-bit driver? It’s awfully easy to
get the 64-bit calling convention wrong.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thank you for answering my question. I looked through the code once more and noticed I was passing the SymbolicLinkstring in IoCreateDevice. A embarrassing error indeed. As to why I am writing this in assembler: it is for learning purposes.